我有这段代码:http://jsfiddle.net/AH4As/3/
它适用于小提琴,但在我的网站上却没有。我在Web Inspector中收到此错误
Tracking.js:4TypeError: 'undefined' is not an object (evaluating '$('a').attr('onClick').replace')
有人知道什么是错的吗?
这是我的源代码:http://jsfiddle.net/AH4As/24/
答案 0 :(得分:0)
<强>更新:强>
$(document).ready(function(){
$('a').attr('onClick', $('a').attr('onClick').replace("window.open('", "window.open('http://example.com/"));
});
这里有一个警告,告诉你代码已被更改: http://jsfiddle.net/AH4As/11/
答案 1 :(得分:0)
尝试:
$('a').removeAttr('onclick').click(function(){window.open('http://example.com');return false;});
答案 2 :(得分:0)
怎么样:
$(document).ready(function(){
$('a').removeAttr('onclick');
$('a').click(function(){
window.open('http://www.example.com', '','location=1,menubar=1,scrollbars=1,status=1,resizable=1,width=635,height=460');
});
});
答案 3 :(得分:0)
使用jQuery 1.4,replace
无法(可靠地)onclick
:
'function' === typeof $('a').attr('onclick');
并且函数没有replace
方法:
'undefined' === typeof $('a').attr('onclick').replace;
你正在获得一个函数,因为jQuery返回属性值而不是属性值。
这就引起了混淆,因为jQuery在1.6中添加了.prop()
方法 - 所以很明显你需要属性值,而不是属性值:
// with jQuery 1.6+
'string' === typeof $('a').attr('onclick');
现在,如果您目前无法更新jQuery,可以尝试在toString
之前插入replace
:
$('a').attr('onclick').toString().replace(...)
旁注:为了更好地耦合原始值和调整值,您可以考虑使用.attr()
的替代语法:
$('a').attr('onclick', function (i, value) {
return value.toString().replace('window.open(\'', 'window.open(\'http://example.com/'));
});
答案 4 :(得分:0)
页面上的其他锚点使查询失败,简而言之这是我的解决方案:
<script type="text/javascript">
$(document).ready(function(){
$('a[onclick^="window.open(\'TrackPackage.asp"]').attr('onClick', $('a[onclick^="window.open(\'TrackPackage.asp"]').attr('onClick').replace("window.open('", "window.open('http://eastcoasttvs.com/"));
});
</script>