ie7“对象不支持此属性或方法”

时间:2012-12-23 00:11:16

标签: jquery internet-explorer-7

任何人都可以解释为什么这会在IE7中引发错误吗?它表示错误发生在“var newStr .....”

的行上

在任何其他浏览器中都没有发生这种情况。

$(document).ready(function() {
    $('a[onclick*="_self"]').each(function() {
        var newOnclick = $(this).attr('onclick');
        var newStr = newOnclick.replace('_self','_parent');
        $(this).attr('onclick', newStr);
    });
});

2 个答案:

答案 0 :(得分:1)

IE的早期版本(早期版本)无法在您请求时将函数对象强制转换为它的源代码。因此,弦不能轻易交换。

你可以替换整个旧的" _self"通过新的_parent函数起作用,例如:

$('a[onclick*="_self"]').attr('onclick', function() { _parent-stuff });

或 - 我读了你的最后一条评论,第二个解决方案对你不起作用,因为它需要更改正文的HTML。

答案 1 :(得分:0)

试试这个:

$(document).ready(function() {
  $('a[onclick*="_self"]').each(function() {
    var newOnclick = $(this).attr('onclick').toString();
    var newStr = newOnclick.replace('_self','_parent');
    if($.browser.msie && parseFloat($.browser.version) == 7) {
       newStr = newStr.replace('onclick="function anonymous()
{
','onclick="');
       newStr = newStr.replace('}"','"');
    }
    $(this).attr('onclick', newStr);
    //$(this).unbind();
    //$(this).bind('click', function () { eval(newStr); });
  });
});