我可以用JavaScript中的内容预先添加iframe吗?
我有一个JavaScript函数,它将AJAX和字符串操作结合起来,以字符串的形式生成完整的HTML页面。即:我可以用JavaScript中的内容预先添加iframe吗?,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,我有一个JavaScript函数,它将AJAX和字符串操作结合起来,以字符串的形式生成完整的HTML页面。即: var markup='<html><body>Hello world!</body></html>'; var markup='Hello world!'; 这是非常简单的,我不能保证HTML结构是可预测的。如何在页面上显示该内容?我认为iframe最有意义,因为字符串包含完整的HTML页面,但我不知道如何将标记注入iframe 我
var markup='<html><body>Hello world!</body></html>';
var markup='Hello world!';
这是非常简单的,我不能保证HTML结构是可预测的。如何在页面上显示该内容?我认为iframe
最有意义,因为字符串包含完整的HTML页面,但我不知道如何将标记注入iframe
我不想创建另一个物理文件只是为了用作“代理”,所以我希望找到一个可以完全包含在一个HTML页面中的解决方案。忘记iframe,查找并修剪头部。忘记iframe,查找并修剪头部。我认为您应该尝试类似jQuery thickbox的方法,它可以在HTML文档中创建一个模式子窗口,并执行一些类似于您正在查找的内容的操作,但确实如此,您必须将内容转储到一个可以动态创建的DIV中 看看下面的帖子是否有帮助:
我认为您应该尝试使用jQuery thickbox之类的工具,它可以在HTML文档中创建一个模式子窗口,并执行一些类似于您正在查找的内容的操作,但确实需要将内容转储到可以动态创建的DIV中 看看下面的帖子是否有帮助:
使用jQuery,您只需执行以下操作:
var markup='<html><body>Hello world!</body></html>';
$('#iframe').contents().find('body').html(markup);
var markup='Hello world!';
$('iframe').contents().find('body').html(标记);
或者,如果你可以去掉你不想要的标签:
markup = markup.replace(/(</?html>|</?body>)/gi, "");
$('#divId').html(markup);
markup=markup.replace(/(|))/gi,“”;
$('#divId').html(标记);
注意:我不知道输入的HTML是什么样子的,所以请确保在运行此代码之前确实可以去掉HTML。这是一个帮助您入门的示例。
这是使用如下DIV:
<div id="divId">Content will go here</div>
内容将转到此处
使用jQuery,您只需执行以下操作:
var markup='<html><body>Hello world!</body></html>';
$('#iframe').contents().find('body').html(markup);
var markup='Hello world!';
$('iframe').contents().find('body').html(标记);
或者,如果你可以去掉你不想要的标签:
markup = markup.replace(/(</?html>|</?body>)/gi, "");
$('#divId').html(markup);
markup=markup.replace(/(|))/gi,“”;
$('#divId').html(标记);
注意:我不知道输入的HTML是什么样子的,所以请确保在运行此代码之前确实可以去掉HTML。这是一个帮助您入门的示例。
这是使用如下DIV:
<div id="divId">Content will go here</div>
内容将转到此处
对我有用。我还使用了
属性中带有数据uri的
属性,例如显示xml文档:
var object = document.createElement("object");
object.setAttribute('data', "data:text/xml, "+xmlstring);
您还可以使用
而不是iframe来获取要覆盖的contentDocument
对我有用。我还使用了
属性中带有数据uri的
属性,例如显示xml文档:
var object = document.createElement("object");
object.setAttribute('data', "data:text/xml, "+xmlstring);
您还可以使用
而不是iframe来获取要覆盖的内容文档。您可以像这样从jQuery更改iframe的html
function get_me_html(){
return '<html><body>Hello world!</body></html>'
}
$('iframe').contents().find('html').html(get_me_html())
函数get\u me\u html(){
返回“你好,世界!”
}
$('iframe').contents().find('html').html(get\u me\u html())
请参见此处的操作您可以像这样从jQuery更改iframe的html
function get_me_html(){
return '<html><body>Hello world!</body></html>'
}
$('iframe').contents().find('html').html(get_me_html())
函数get\u me\u html(){
返回“你好,世界!”
}
$('iframe').contents().find('html').html(get\u me\u html())
有关使用正则表达式“解析”html的信息,请参见此处的操作。另外,你的尝试不会修剪诸如head、meta、title等标签,我说的是“如果可以的话”。这只是一个例子。我不知道他的应用程序的要求是什么。我尝试了
$('#iframe').html(标记)
,但iframe仍然是空的。它应该能够像那样工作吗?对不起,我没有使用.contents().find('body')
部分。它现在在那里。-1用于用正则表达式“解析”html。另外,你的尝试不会修剪诸如head、meta、title等标签,我说的是“如果可以的话”。这只是一个例子。我不知道他的应用程序的要求是什么。我尝试了$('#iframe').html(标记)
,但iframe仍然是空的。它应该能够像那样工作吗?对不起,我没有使用.contents().find('body')
部分。它现在在那里。我先试过,但我遇到了不寻常的问题。在jQuery对象中包装标记返回的是数组而不是dom元素。这可能是另一个问题。我先尝试了这个,但我遇到了不寻常的问题。在jQuery对象中包装标记返回的是数组而不是dom元素。但这可能是另一个问题。这几乎奏效了。我看到它忽闪忽灭。然后iframe是空白的。我怀疑其他一些js函数可能有干扰,但我没有进行太多的故障排除,因为Bergi的答案很快就奏效了。我看到它忽闪忽灭。然后iframe是空白的。我怀疑其他一些js函数可能有干扰,但我没有进行太多的故障排除,因为Bergi的答案很快就奏效了。