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