Skip to content

Commit 59faaef

Browse files
committed
Fix issue kindsoft#117
1 parent 08a2db1 commit 59faaef

7 files changed

Lines changed: 327 additions & 288 deletions

File tree

changelog.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ ver 4.1.8
1515
* Bugfix: editor.html(val)的val参数为null或undefined时报错。
1616
* Bugfix: [IE10] 单独调用组件-上传图片弹出框,需要点击两次选择图片按钮才能弹出窗体。
1717
* Bugfix: 代码模式下输入带连续多个空格的标签,有些浏览器无响应。
18+
* Bugfix: [IE] 当两个A标签并排在一起中间没有别的内容,修改后面的链接地址时,前面的链接地址也被改掉。
1819

1920
ver 4.1.7 (2013-04-21)
2021
* Bugfix: 取消全屏后没有恢复到原来大小,调整窗口大小后宽高变成全屏宽高。

kindeditor-all-min.js

Lines changed: 228 additions & 228 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

kindeditor-all.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3231,14 +3231,26 @@ _extend(KCmd, {
32313231
range.selectNode(node[0]);
32323232
return self.select();
32333233
}
3234-
_nativeCommand(doc, 'createlink', '__kindeditor_temp_url__');
3235-
K('a[href="__kindeditor_temp_url__"]', doc).each(function() {
3236-
K(this).attr('href', url).attr('data-ke-src', url);
3234+
function setAttr(node, url, type) {
3235+
K(node).attr('href', url).attr('data-ke-src', url);
32373236
if (type) {
3238-
K(this).attr('target', type);
3237+
K(node).attr('target', type);
32393238
} else {
3240-
K(this).removeAttr('target');
3239+
K(node).removeAttr('target');
3240+
}
3241+
}
3242+
var sc = range.startContainer, so = range.startOffset,
3243+
ec = range.endContainer, eo = range.endOffset;
3244+
if (sc.nodeType == 1 && sc === ec && so + 1 === eo) {
3245+
var child = sc.childNodes[so];
3246+
if (child.nodeName.toLowerCase() == 'a') {
3247+
setAttr(child, url, type);
32413248
}
3249+
return self;
3250+
}
3251+
_nativeCommand(doc, 'createlink', '__kindeditor_temp_url__');
3252+
K('a[href="__kindeditor_temp_url__"]', doc).each(function() {
3253+
setAttr(this, url, type);
32423254
});
32433255
return self;
32443256
},

kindeditor-min.js

Lines changed: 44 additions & 44 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

kindeditor.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3231,14 +3231,26 @@ _extend(KCmd, {
32313231
range.selectNode(node[0]);
32323232
return self.select();
32333233
}
3234-
_nativeCommand(doc, 'createlink', '__kindeditor_temp_url__');
3235-
K('a[href="__kindeditor_temp_url__"]', doc).each(function() {
3236-
K(this).attr('href', url).attr('data-ke-src', url);
3234+
function setAttr(node, url, type) {
3235+
K(node).attr('href', url).attr('data-ke-src', url);
32373236
if (type) {
3238-
K(this).attr('target', type);
3237+
K(node).attr('target', type);
32393238
} else {
3240-
K(this).removeAttr('target');
3239+
K(node).removeAttr('target');
3240+
}
3241+
}
3242+
var sc = range.startContainer, so = range.startOffset,
3243+
ec = range.endContainer, eo = range.endOffset;
3244+
if (sc.nodeType == 1 && sc === ec && so + 1 === eo) {
3245+
var child = sc.childNodes[so];
3246+
if (child.nodeName.toLowerCase() == 'a') {
3247+
setAttr(child, url, type);
32413248
}
3249+
return self;
3250+
}
3251+
_nativeCommand(doc, 'createlink', '__kindeditor_temp_url__');
3252+
K('a[href="__kindeditor_temp_url__"]', doc).each(function() {
3253+
setAttr(this, url, type);
32423254
});
32433255
return self;
32443256
},

src/cmd.js

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -788,14 +788,28 @@ _extend(KCmd, {
788788
range.selectNode(node[0]);
789789
return self.select();
790790
}
791-
_nativeCommand(doc, 'createlink', '__kindeditor_temp_url__');
792-
K('a[href="__kindeditor_temp_url__"]', doc).each(function() {
793-
K(this).attr('href', url).attr('data-ke-src', url);
791+
function setAttr(node, url, type) {
792+
K(node).attr('href', url).attr('data-ke-src', url);
794793
if (type) {
795-
K(this).attr('target', type);
794+
K(node).attr('target', type);
796795
} else {
797-
K(this).removeAttr('target');
796+
K(node).removeAttr('target');
797+
}
798+
}
799+
// Bugfix: https://github.com/kindsoft/kindeditor/issues/117
800+
// [IE] 当两个A标签并排在一起中间没有别的内容,修改后面的链接地址时,前面的链接地址也被改掉。
801+
var sc = range.startContainer, so = range.startOffset,
802+
ec = range.endContainer, eo = range.endOffset;
803+
if (sc.nodeType == 1 && sc === ec && so + 1 === eo) {
804+
var child = sc.childNodes[so];
805+
if (child.nodeName.toLowerCase() == 'a') {
806+
setAttr(child, url, type);
798807
}
808+
return self;
809+
}
810+
_nativeCommand(doc, 'createlink', '__kindeditor_temp_url__');
811+
K('a[href="__kindeditor_temp_url__"]', doc).each(function() {
812+
setAttr(this, url, type);
799813
});
800814
return self;
801815
},

test/main.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ <h1 id="type">KindEditor Main Test</h1>
5858
<tr>
5959
<td align="center">
6060
<form method="post" action="../php/demo.php">
61-
<textarea name="content1" cols="100" rows="20" style="width:100%;height:10px;">
61+
<textarea name="content1" cols="100" rows="20" style="width:100%;height:500px;"><a href="#">aaaaaa</a><a href="#">bbbbbb</a>
6262
<img src="http://www.kindsoft.net/ke4/attached/W020091124524510014093.jpg" alt="" /><strong>dddd</strong><br />
6363
</textarea>
6464
<br />

0 commit comments

Comments
 (0)