0
我试图从该框架的父页面的iframe中执行一个函数。两者都在同一个域中。
该功能是子页面上的小部件的一部分,并在页面加载时激活。在iframe中执行小部件功能
function(){apex.jQuery(document).apex_save_before_exit({...});};;
一块小部件代码:
(function($){
$.widget('ui.apex_save_before_exit', {
options: {
saveMessage: null,
noWarningSelector: null,
disableTime: null,
ignoreChangeSelector: null
},
values: {
itemChanged: false,
promptUser: true,
forcePrompt: false,
debug: $('#pdebug').length !== 0
},
_create: function() {
...
},
...,
changeDetected: function() {
var uiw = this;
var somethingChanged;
...
我知道小部件的工作原理,因为当我尝试在iframe(当不会在iframe中),它可以作为我期望。
但我想从父页面调用changeDetected
函数。
注:我从萤火虫控制台运行这些!
window.frames['cbox1346667865025'].document.apex_save_before_exit('changeDetected')
在使用
$('iframe.cboxIframe')[0].contentWindow.document
or
$('iframe.cboxIframe').contents()
息率
TypeError: $("iframe.cboxIframe").contents().apex_save_before_exit is not a function
我在做什么错息率
TypeError: window.frames.cbox1346667865025.document.apex_save_before_exit is not a function
相同的吗?它甚至有可能吗?
这两个网页位于同一个域(这是我在OP第二个句子;))。我试着用jQuery对象作为html dom对象:'windows.frames'是纯javascript,而jquery'[0]'返回一个html dom元素。那些不起作用,'.contents()'同样少。我没有看到为什么'getElementById'可以与其他所有工作不同,即使iframe没有'id'属性。 – Tom
然后尝试给iframe一个id并得到它的方式? – PhonicUK
我做了,但结果是一样的。我必须使用'.contentWindow','.document'是'undefined' - >'document.getElementById('cbiframe')。document' – Tom