【问题标题】:Altering IFrame src content更改 IFrame src 内容
【发布时间】:2014-07-17 02:44:17
【问题描述】:

我不相信这可以做到,但是否可以更改通过 src 呈现的 iframe 的内容。

我使用的第 3 方编译的 ASP.Net 控件(Telerik RadEditor .Net 2 版本)在其渲染代码的一部分中有一个 iframe,并且不包含 doctype,它在 IE8 中导致某些元素出现问题。

因为它是编译的,我不能在源代码中添加它。我想知道是否可以通过其他方式添加它?

我在 jquery 中尝试了多种方法,例如:

$(element).html().prepend("doc type here");

$(element).html("doctype here" + $(element).html()); 

以及所有其他类型的狡猾的工作。

【问题讨论】:

  • 你为什么不使用自定义内容过滤器。您可以选择获取/设置 radeditor 值。
  • 我尝试查看自定义内容过滤器。但我不明白如何将 docType 注入其中。看起来它没有完成我需要的任务。你知道怎么做吗?
  • 我已经发布了答案。检查一下。

标签: javascript jquery html asp.net iframe


【解决方案1】:

src,你的意思是内容,对吧? (src 是 iframe 的一个属性,它指定 iframe 本身的 URI)

您可以通过更改 iframe 的 the content 来更改文档类型。一种可能的方法是重新创建 iframe 并重新插入内容,同时添加 doctype。不幸的是,it is not possible 使用 DOM 将 doctype 附加到现有 iframe。

例子:

var iframe = document.createElement("iframe");
var idocument = iframe.contentDocument;
idocument.open();
idocument.write("<!DOCTYPE html...") // Doctype goes here
idocument.write("<html>...</html>") // Content goes here
idocument.close();

【讨论】:

  • 是的,我的意思是,iframe 的 url 来自另一个页面,所以在我的脑海中我的想法是你不能改变它的内容吗?我会试试你的例子
  • @Nick:对不起,尼克,我最初误读了你的问题。我已经编辑了我的答案,以便专注于文档类型问题。
  • 谢谢,这在一定程度上可行,但似乎第 3 方控件正在做一些时髦的事情。我会稍微玩一下,然后告诉你它是怎么回事。
  • 它目前呈现像
  • 这对现有 iframe 而非新 iframe 有何作用?
【解决方案2】:

我使用 iframe 做了类似的事情,使用 jQuery:$('iframe').contents().find("#internaldiv"),它可以工作,但前提是 iframe src 和主网站是同一域的一部分,在其他情况下你必须处理 相同域策略 (http://en.wikipedia.org/wiki/Same-origin_policy) 并在您的服务器和其他域服务器中实施跨域策略。

【讨论】:

  • 谢谢,先前的答案首先确定了如何做到这一点,但感谢您提及相同的域策略。在这种情况下是正确的。
猜你喜欢
  • 2012-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
相关资源
最近更新 更多