当前位置: 首页 > 知识库问答 >
问题:

如何动态设置动态iframe内容

璩和璧
2023-03-14

我有一个页面,需要动态创建一个iframe并将其粘贴到页面上的div中。我创建iframe的方式如下:

var frame = $('<iframe>')
    .attr('id', 'myIframe')
    .addClass('someClass')
    .appendTo($('#someDiv'));

根据某些条件,我需要:A)将iframe src设置为其他页面,或者B)动态地向iframe添加一些HTML。

我有选项A的罚款,但选项B抛出了安全错误:

if (someCondition) {
    // option A, works fine
    frame.attr('src', someURL);
} else {
    // option B, blows up with "Access is denied."
    $(frame[0].contentWindow.document).find('body').html(someHTML);
}

在尝试设置HTML之前,是否需要在动态iframe上设置document.domain?我怎么会那么做呢?有没有更简单的方法将动态内容附加到动态iframe中?

提前道谢。

编辑此处是动态iframe的呈现HTML(根据请求):

<div id="someDiv">
    <iframe id="myIframe" class="someClass"></iframe>
</div>

共有2个答案

景元忠
2023-03-14

为了绕过这个问题,我使用了一个与这个问题的答案类似的修补程序:

var frame = $('<iframe>')
    .attr('id', 'myIframe')
    .addClass('someClass')
    .attr('src', 'javascript:(function () {' + 
        'document.open();document.domain=\'myDomain.net\';document.close();' + 
     '})();');
    .appendTo($('#someDiv'));

这是一个黑客的定义,但我认为这是最好的方法解决问题。

高嘉熙
2023-03-14

对不起,但是如果iframe引用了另一个域的URL源,您就无法访问它。

http://javascript.info/tutorial/same-origin-security-policy

尽管如此,您可以访问它的主体,前提是您有来自同一域的url,或者您用“javascript:void(0);”填充属性src。之后,尝试通过以下方式访问它:

$($('iframe').contents().get(0)).find('body')
 类似资料:
  • 我想做的是根据滚动的数字将Imageview设置为不同的骰子侧。

  • 我收到了有关。 故事是我有一个名为,我通过重写方法自己重新绘制它。绘图的内容是动态生成的。所以直到运行时我才知道它的大小。问题是我如何/在哪里可以动态设置其超级视图(滚动视图)的内容大小?对此有什么想法吗?

  • cmf_set_dynamic_config($data) 功能 设置动态配置 参数 $data: array 要设置的数据,格式["cmf_default_theme"=>'simpleboot3'] 返回 boolean

  • 问题内容: 我想将String放入比给定单元格宽度更长的字符串中。如何动态设置,以便可以读取整个String?这是一个例子: 在这里,您将看到将给定单元格较长的每个文本换行的代码 谢谢,但是我想根据字符串的长度动态地实现RowHeight。我想读取单元格中的整个字符串/文本。有什么建议? 我是Java初学者,这是我的第一个问题。我很高兴得到答案。 问题答案: 使用JTextArea作为呈现组件时会

  • 问题内容: 我正在使用jQuery DataTables,我的JavaScript代码如下所示: 我想根据选择元素的选择值过滤此dataTable: 如何设置的选项的值在该事件根据所选项目选择的元素? 问题答案: 我找到了 :

  • torch_tensorrt 如何设置动态的 batch_size? 我有一个 pytorch 的 resnet50 网络,我想用 tensorrt+cuda跑 所以我想用 torch_tensorrt 将这个 pytorch 的 resnet50 网络,转成 tensorrt 格式的 但是我的场景是推理,而不是训练,所以输入给模型的 batch_size 不会是一个固定值,可能是 1 也可能是