我正在尝试从该帧的父页面执行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
函数
注意:我正在从firebug控制台运行它们!
window.frames['cbox1346667865025'].document.apex_save_before_exit('changeDetected')
收益率
TypeError: window.frames.cbox1346667865025.document.apex_save_before_exit is not a function
使用
时相同$('iframe.cboxIframe')[0].contentWindow.document
or
$('iframe.cboxIframe').contents()
产量
TypeError: $("iframe.cboxIframe").contents().apex_save_before_exit is not a function
我做错了什么?它甚至可能吗?
答案 0 :(得分:0)
如果iframe的内容与iframe外的域名不同,则无法执行此操作。
你也可能想要实际的元素而不是jquery对象,所以改为:
document.getElementById('myiframe').document.someFunction(arg1, arg2,...);