我正在使用localhost(所以我希望没有任何与域相关的问题为here)。
在一个页面上,我使用了一些JS来修改打开窗口中的span的内容。这是行不通的。
检查我的代码以查找控件时,它可以正常工作(使用FF dev-tools调用我的Increment
- 函数或检查console.log
- 输出):$('#uploads_Count')
返回HTMLSpanElement类型的对象。但是,尝试使用window.opener.$('#uploads_Count')
从打开的窗口控制台访问同一控件时,会返回一个HTML-Document,看起来就像是整个页面。为什么这不起作用,我在这里缺少什么?
这是一个函数,它应该增加包含在其id作为参数的范围中的计数器:
function Increment(ctrl)
{
var gef = $("#" + ctrl);
if (!gef) // did not find control, maybe on opener?
{
gef = window.opener.$("#" + ctrl);
}
console.log(gef);
cnt = parseInt(gef.text() , 10);
cnt++;
gef.text(cnt);
}
HTML很简单:
<span id="uploads_Count">0</span>
答案 0 :(得分:0)
如果$(selector)
返回一个元素(例如HTMLSpanElement
),而不是一个元素集合(在大多数开发工具中看起来像[<span id="uploads_Count"></span>]
),那么你不会调用{ {1}}。
A级浏览器中的开发工具倾向于引入jQuery
作为选择器函数。它仅在开发人员控制台中可用。
如果$
存在,那么可能会调用jQuery.noConflict()
,在这种情况下您应该使用window.jQuery
。
答案 1 :(得分:0)
发现它!
我检查控件是否被找到的方式是错误的。而不是if (!gef)
我应该使用if (!gef.length)
。找到了解释here。