使用Javascript/jQuery得到一个奇怪的错误

Getting an Odd Error using Javascript/jQuery

本文关键字:一个 错误 Javascript jQuery 使用      更新时间:2023-09-26

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

你知道是什么原因导致的吗?

我创建了一个JSFiddle的代码,你可以看看,并注意到,在控制台你的错误没有出现在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);

然后使用with:

$("a:contains('Nodequeue')").triggerAnchor();

我不认为jQuery触发锚,它当然不会触发本地点击事件。这是我能想到的最接近模仿那种行为的东西了。

你可以看到它'working'在这里

代码说明:

代码只是一个jQuery插件,它查看锚的href属性并将窗口位置设置为该值。我使用了典型的包装闭包模式来本地化对window和jQuery的引用。我允许您在多个锚上调用这个,但我假设普通用户只需要运行一次。

这个错误通常意味着你正在从一个帧向另一个帧发出javascript请求。在这种情况下,链接是在iframe中,还是jquery在iframe中运行?