【问题标题】:JQuery - how to append object to iframe in WebKit based browsers (chrome/safari)?JQuery - 如何在基于 WebKit 的浏览器(chrome/safari)中将对象附加到 iframe?
【发布时间】:2009-09-07 17:53:30
【问题描述】:

我有这个代码:

  <script type="text/javascript">
    $(document).ready(function() {
        $("#iframeId").contents().find("body").append($("#test"));
    });
  </script>
  <iframe id="iframeId" name="iframeId" src="about:blank" ></iframe>
  <div id="test">
     Text
  </div>

而且我需要将整个对象附加到 iframe(不仅是 html())。 它在 IE、Firefox 和 Opera 中运行良好,但我无法在 Chrome/Safari 中运行。是否有任何 hack 或其他方式,如何将 html 对象放入 iframe,与 WebKit 一起使用?

编辑

我无法克隆对象(或使用其内部 Html),因为我需要将它与文件输入一起使用,并且由于安全限制我无法复制它。

【问题讨论】:

  • 你用的是什么版本的jquery?

标签: jquery iframe webkit append


【解决方案1】:

outerHTML。这个例子很好用:

jQuery.fn.outerHTML = function() {
    return $('<div>').append( this.eq(0).clone() ).html();
};

$("#iframeId").contents().find("body").html($("#test").outerHTML());
$("#test").remove();

--编辑

  <script type="text/javascript">
    $(document).ready(function() {
     $("#iframeId").contents().find("body").html($("<div></div>").append($("#test")).html());
    });
  </script>
  <iframe id="iframeId" name="iframeId" src="about:blank" ></iframe>
  <div id="test">
     Text
  </div>

--编辑二

$("#iframeLast").contents().find("body").append($("<form></form>").append($("#inputLast")));

【讨论】:

  • 但是这个克隆对象,我需要使用表单中的代码和文件输入,所以我无法复制/克隆它。
  • 这样的东西可以用吗?
  • 仍然没有,它不会将输入附加其值。我已经根据你的建议制作了测试页,你可以在这里找到它:reznicci.cz/appendProblem/index.html。如果您选择任何文件并单击按钮,它应该将输入移动到 iframe 并提醒其值。它适用于 IE、FF 和 Opera,但不适用于 Safari/Chrome。
猜你喜欢
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 2014-02-20
  • 1970-01-01
  • 1970-01-01
  • 2016-01-06
  • 2015-09-13
  • 1970-01-01
相关资源
最近更新 更多