我在MTurk HIT中使用jQuery做了几件事情,我猜测其中一个可能是罪魁祸首。我不需要从iframe访问周围的文档,所以如果我这样做了,我想知道发生了什么以及如何停止它!
否则,MTurk可能会做一些不正确的事情(例如,在iframe URL中使用5个字符的令牌&
来分隔URL参数,因此他们绝对会做错误的事情)。
以下是可能导致问题的代码片段。所有这些都来自嵌入在MTurk HIT **(以及相关)页面中的iframe中:
我正在将我的JS嵌入到
$(window).load()
中。据我所知,我需要使用这个而不是$(document).ready()
,因为后者不会等待我的iframe加载。如果我错了,请纠正我。我还在
window.location.href
上运行RegExp.exec来提取workerId。
如果这是重复的问题,我提前道歉。事实上,在我写完这篇文章后,SO似乎已经猜到了:调试“尝试访问URL为...的不安全JavaScript框架”。如果在你之前我找到了答案,我会回答这个问题。
能够获得一个很好的高级参考资料来学习这种东西将是很棒的。它并不自然地适用于我所知道的任何主题 - 或许要学习有关跨站点脚本编写,以便我可以避免它?
** 如果您不知道,MTurk HIT是MTurk上从事任务的人们的工作单位。如果您导航到http://mturk.com并查看HIT,您可以很快看到它们的样子。
我已经追踪代码到jquery中的以下块中,并在inject.js文件中运行:
try {
isHiddenIFrame = !isTopWindow && window.frameElement && window.frameElement.style.display === "none";
} catch(e) {}