使用Javascript / jQuery获得奇怪的错误

时间:2011-07-08 04:03:30

标签: javascript jquery html

尝试在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.

知道可能导致这种情况的原因吗?

2 个答案:

答案 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的引用。我允许你在多个锚上调用它,但我假设一般用户只需要运行一次。