尝试在html中选择以下链接:
<a href="/node/1742957/nodequeue">Nodequeue</a>
使用此Javascript:
jQuery("a:contains('Nodequeue')").trigger("click");
我收到此错误消息:
Javascript console (:1): Unsafe JavaScript attempt to access frame with URL http://cdn.nprove.com/cpma/p/1/2/e/b/12ebf3bc368ry3ra.html?npuid=1310010225&rurl=&id=cpma-2n7eypbvio581300288437193&null=&r=366424962878227 from frame with URL http://www.benzinga.com/analyst-ratings/analyst-color/11/07/1742957/the-beef-stops-here. Domains, protocols and ports must match.
知道可能导致这种情况的原因吗?
答案 0 :(得分:1)
该错误通常意味着您正在从一个帧到另一个帧发出javascript请求。在这种情况下,是iframe中的链接,还是在iframe中运行的jquery?
答案 1 :(得分:1)
我创建了一个 JSFiddle of your code您可以查看并注意到在控制台中您的错误没有出现在Chrome 12或FireFox 5中。我不确定您使用的是哪种版本的jQuery导致了这种情况或您的DOM情况然而,可能会触发该错误,尝试这个潜在的修复:
(function(window, $) {
$.fn.triggerAnchor = function() {
return this.each(function(e) {
var href = $(this).attr('href');
window.location.href = href;
return false;
});
};
})(this, this.jQuery);
然后使用:
$("a:contains('Nodequeue')").triggerAnchor();
我认为jQuery不会触发锚点,并且它肯定不会触发本机点击事件。这是我能想到的最能模仿这种行为的东西。
您可以看到它“正常”here
代码说明:
代码只是一个jQuery插件,它查看anchor的href属性并将窗口位置设置为该值。我写了一个包装闭包的典型模式来本地化对window和jQuery的引用。我允许你在多个锚上调用它,但我假设一般用户只需要运行一次。