1

IE 有一个问题,例如,如果我尝试动态更改如下链接:

<a href="http://www.foo.com">www.foo.com</a>

<a href="http://www.bar.com?q=www.foo.com">www.foo.com</a>

使用 JavaScript 将链接更改为(仅在 IE 中)

<a href="http://www.bar.com?q=www.foo.com">http://www.bar.com?q=www.foo.com</a>

这不是我想要做的。

我找到了解决方案,例如保存 interHTML、更改链接并使用旧值恢复 interHTML……但是如果内部内容有一些动态附加的事件怎么办?将丢失。

目前我尝试检查是否有任何带有innerHTML的HTML属性,如果没有,我会恢复旧的HTML。

function change_link(a,newlink)
{
    if(navigator.appName == 'Microsoft Internet Explorer') {
        var old = a.innerHTML ;
        if(old.indexOf('<')==-1) {
            a.href=newlink;
            a.innerHTML = old;
            return
        }
    }
    a.href=newlink;
}

可能有什么问题吗?

是否可以动态地将事件附加到内部 HTML 的纯文本中,并且在内部 HTML 重置期间它会丢失?

4

0 回答 0