【问题标题】:How to put data retrieved by XMLHttpRequest into an iframe?如何将 XMLHttpRequest 检索到的数据放入 iframe?
【发布时间】:2012-01-19 07:05:51
【问题描述】:

我试图向客户端展示 XSS 缺陷的后果,为此我需要检索一个页面,通过简单的搜索和替换更改其中的一些 html,然后最终以框架。我已经弄清楚了前两部分,但我正在努力让 iframe 工作。

这是我目前所拥有的:

<html>
<head>
<script type="text/javascript">
function getSource()
{
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    var content=xmlhttp.responseText;
    document.write(content.replace(/MyString/gi, "StringtoReplace"));
    }
  }
xmlhttp.open("GET","indextest.html",true);
xmlhttp.send();
</script>
</head>
<body>
<body onload="getSource()">
</body>
</html>

那么我如何将它放入 iframe 中?我一直在尝试将 document.write 行放入一个变量中,并将其称为 iframe src,但到目前为止还没有运气。有什么建议么?非常感谢

【问题讨论】:

  • 您可能需要为此使用两个页面(一个用于将内容放入 div 的 ajax 提取,另一个用于 iframe 以显示第一页)。您也可以在一个页面中执行相同的操作,但无论哪种方式都需要您将 iframe src 设置为正在执行获取和填充 div 的 innerHTML 的页面。

标签: javascript iframe xmlhttprequest


【解决方案1】:

不要使用 document.write() 来编写,而是使用这个:

var iframe = document.getElementById("YOUR IFRAME ID HERE");
iframe.contentDocument.write("HTML TAGS AND OTHER STUFF HERE");

【讨论】:

  • 非常感谢您的回复。原谅我的笨拙,但我不太了解 iframe.contentDocument.write("here"); 中应该包含的内容。 - 你的意思是我应该在这里进行搜索和替换吗?
  • 是的,这就是所有搜索和替换内容的 html 内容。如果它只是纯文本,请将其放在

    标记内的 html 文档中。
  • 知道了 - 谢谢!我之前执行了搜索和替换,并将编辑后的代码分配给一个变量,然后我用iframe.document.write()欢呼
猜你喜欢
  • 2020-02-14
  • 2020-12-06
  • 1970-01-01
  • 1970-01-01
  • 2023-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
相关资源
最近更新 更多