火狐没有在 iframe 中加载 javascript 可能是啥原因
Posted
技术标签:
【中文标题】火狐没有在 iframe 中加载 javascript 可能是啥原因【英文标题】:What can be the causes of firefox not loading the javascript in an iframe火狐没有在 iframe 中加载 javascript 可能是什么原因 【发布时间】:2014-05-12 10:05:54 【问题描述】:我发现一个问题很难调试,当 Firefox 从 iframe 中加载我的代码时,它似乎只发生在 Firefox 上。我对浏览器的差异知之甚少,为了使这项工作能够进行,问题是间歇性的。我已将其追溯到 javascript 中的此错误,而我在 chrome 上却没有。
TypeError: $(...).autocomplete(...).data(...) 为空
现在我认为正在调用的相关代码来自这样的 javascript 自动完成功能。
$("#field").data( "ui-autocomplete" )._renderItem = function( ul, item ) ...
让我感到困惑的是它似乎是一个间歇性的 firefox 错误,我无法在 chrome 上重现它。有没有人知道这里发生了什么?
注意我读过this、this 和几个类似的,但我的问题是.data 返回null,而不是.data("autocomplete")
是undefined
...
提前致谢。
【问题讨论】:
哦,当然,如果我可以添加更多细节,请告诉我,我很乐意。 发布链接以检查问题(如果可能)。 您在控制台/Firebug 上遇到什么错误?TypeError: $(...).autocomplete(...).data(...) is null
【参考方案1】:
你能提供一些 jsFiddle 或一个具体的例子吗?很难说是什么问题。
无论如何,也许您可以通过以下方式解决问题:
if( $("#field").data() )
var fieldAuto = $("#field").data( "ui-autocomplete" );
if( fieldAuto )
fieldAuto._renderItem = function( ul, item ) ... ;
ui-autocomplete
取决于 jQuery 版本,因此您可能必须更改它
【讨论】:
谢谢,这是一个很好的观点,如果这不起作用,我会尝试你的建议并尝试让 jsfiddle 启动并使用 SSCE 运行(不幸的是,它是我继承的紧密耦合系统,所以可能需要一段时间。) 如果有人好奇,我设法找出问题的原因。 javascript 正在每个页面上运行,并且会在没有所需元素的页面上崩溃(导致错误)。这是一种解决方案,另一种解决方案只是更改功能以确保它仅在所需的页面上运行。【参考方案2】:根据您使用的 jquery ui 版本,它将是“自动完成”或“ui-autocomplete”。
var autoComplete = input.data("ui-autocomplete");
if(typeof(autoComplete) == "undefined")
autoComplete = input.data("autocomplete");
autoComplete._renderItem = function(ul, item) ....
如果有任何进一步的问题,请检查并告诉我。
干杯.. :)
【讨论】:
以上是关于火狐没有在 iframe 中加载 javascript 可能是啥原因的主要内容,如果未能解决你的问题,请参考以下文章