使用 iframe 时,如何让 jquery.address 在 Opera 中工作?
Posted
技术标签:
【中文标题】使用 iframe 时,如何让 jquery.address 在 Opera 中工作?【英文标题】:What can I do to get jquery.address working in Opera when using iframe? 【发布时间】:2012-04-24 06:53:48 【问题描述】:我有一个网页,它大量使用 jquery.address 插件。现在我需要在 iframe(社交网络应用程序)中显示此页面。它在除 Opera 之外的所有浏览器中都能正常工作(我有 Opera 11.62)。这是我得到的错误:
[04/12/2012 01:14:14 AM] javascript - 内联脚本线程 未捕获的异常:ReferenceError:安全错误:试图读取受保护的变量:onhashchange 在 http://vk.autosprite.ru/media/js/jquery.address-1.5.js 中 () 的第 15 行第 8 列抛出错误: var _trigger = 函数(名称) 从 http://vk.autosprite.ru/media/js/jquery.address-1.5.js 中 ($) 的第 13 行第 4 列调用: $.address = (function () 从 http://vk.autosprite.ru/media/js/jquery.address-1.5.js 的第 11 行第 0 列调用: (函数($)任何想法为什么会发生这种情况以及我可以做些什么来解决这个问题?
【问题讨论】:
【参考方案1】:Opera 禁止从 IFRAME 访问 top.document 属性,例如“title”或事件“onhashchanged”,并抛出错误“未捕获的异常:ReferenceError:安全错误:试图读取受保护的变量:onhashchange。”我已经向他们提交了修复: https://github.com/asual/jquery-address/pull/130
【讨论】:
谢谢!实际上我看到了你的修复,但只是没有时间测试它。以上是关于使用 iframe 时,如何让 jquery.address 在 Opera 中工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何让页面仅在使用 cloudflare 时接受来自我网站的 iframe 请求?
如何让jqueryEasyUI里面的dialog弹出层跳出iframe框架在最外层显示以防止拖动时部门被遮住之后无法拖动