如何为 iframe 而不是 iframe 编写 JavaScript(相同的内容)

How to write JavaScript for iframe and not iframe (same content)

本文关键字:iframe 编写 JavaScript      更新时间:2023-09-26

Setup

我将访问我页面上的内容,有时从 iframe 访问,有时从不在 iframe 中的相同内容。

问题

我正在尝试找出一种编写 javascript 的方法,并在声明 var 期间包括访问该内容的两种方式......

到目前为止的例子

var $Holder;
if($('#MyHolder iframe').contents().length > 0) { 
    $Holder = $('#MyHolder iframe');
}
else {
    $Holder = $('#MyHolder');
}

但我不能这样做,因为如果内容在 iframe 中,我需要以这种方式访问它:

$Holder.contents().find('#SomeButton').on('click',function(){});

如果内容直接在页面上,则这不起作用。如果我添加 .content((,这也不起作用。

如果我

正确理解了这个问题,您应该能够像这样将$Holder设置为iframe的内容((:

var $Holder;
if($('#MyHolder iframe').contents().length > 0) { 
    $Holder = $('#MyHolder iframe').contents();
}
else {
    $Holder = $('#MyHolder');
}

然后,您应该能够在任何一种情况下访问元素,如下所示:

$Holder.find('#SomeButton').on('click',function(){});