在不设置innerHTML的情况下在IE中设置href属性而不更改链接外观

时间:2012-09-12 15:02:10

标签: javascript internet-explorer

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>

这不是我想做的事。

我找到了解决方案,例如保存innterHTML,更改链接并恢复innterHTML 旧的价值...但如果内部内容有一些动态附加,该怎么办? 事件?遗失了。

目前我尝试检查是否有任何带有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的纯文本中,并且在innerHTML重置期间会丢失?

0 个答案:

没有答案