我有一个<iframe>
的页面,其中<iframe>
另一个<iframe>
弹出窗口。我试图做的是调用<iframe>
<iframe>
中设置的函数....我知道,同一个标签的批次很多上。
这就是我在HTML格式中的意思。
<body>
<iframe src="blahblah.html" name="iframe">
//blahblah.html html
<iframe src="blahblahpopup.html" name="iFrame2">
//blahblahpopup.html html, also where the function is set.
</iframe>
</iframe>
</body>
因此,正如您所见,<iframe>
中有一个<iframe>
。
现在让我们开始做生意。我使用这个JS代码将我的JS上下文放到第一级<iframe>
,名称为&#39; iframe&#39;
window.frames['iframe'].showAssetPicker();
它的作用是调用第一级<iframe>
内的弹出窗口。但是现在我需要在刚刚调用的弹出窗口内调用一个函数。 (这是另一个<iframe>
...我不是所有<iframe>
的原因......)
所以,我尝试调用第二级<iframe>
中定义的函数失败...
window.frames['iframe'].frames['iFrame2'].populateTypePullDown('/getdata/');
我也试过
window.frames['iframe'].window.frames['iFrame2'].populateTypePullDown('/getdata/');
似乎都没有用。对此有何帮助?我使用node-webkit删除<iframe>
安全限制。
感谢您提供任何帮助,您可以自由选择!
P.S。善良亲切,我在这篇文章中说<iframe>
太多次了。
答案 0 :(得分:3)
问题可能是您在资产选择器加载之前没有等待,因此尚未定义函数populateTypePullDown
。
尝试这样的事情:
$('#iframe')
.ready(function() {
var $innerIframe = $(this).contents().find('#iFrame2');
console.log($innerIframe, 'ready');
$innerIframe.get(0).contentWindow.populateTypePullDown('/vsg/ipm/SecuredOfferRepository');
})
.get(0).contentWindow.showAssetPicker();
答案 1 :(得分:1)
找出答案。我做的是我到达主<iframe>
内部,并获得了内部<iframe>
的contentWindow。
$('#iframe').contents().find('#iFrame').get(0).contentWindow.performSearch();