Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以用JavaScript中的内容预先添加iframe吗?_Javascript_Jquery_Html_Iframe - Fatal编程技术网

我可以用JavaScript中的内容预先添加iframe吗?

我可以用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 我

我有一个JavaScript函数,它将AJAX和字符串操作结合起来,以字符串的形式生成完整的HTML页面。即:

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的答案很快就奏效了。