如何在服务器端更改IFRAME内容?

时间:2014-01-20 20:35:27

标签: javascript php html iframe

我试图在帖子中寻找答案,但仍然没有明确的答案。 这是我的情景: 在其中一个页面上,我有一个从另一个域获取内容的IFRAME。框架看起来很奇怪,风格与主要网站完全不同。最重要的是,通过提交表单,它定位到新页面,我希望用户保持在同一页面上。 所以我想也许我可以改变一些东西 - 样式和IFRAME中表单的目标。据我所知,使用JavaScript是不可能的,因为它来自另一个域。我正在考虑服务器端脚本(例如PHP),它首先将IFRAME内容加载到字符串中,然后替换样式href,将“target = _blank”更改为其他内容,最后将内容传回页面。

这就是我的想法。 最初它看起来像这样:

<!-- iframe src="http://www.otherdomain.com/cgi-bin/querypackage.cgi?code=ent1"></iframe-->

我用它替换它:

<iframe src=”frameprocessor.php"></iframe>

所有的魔法都发生在frameprocessor.php。

有可能吗?也许我的事情过于复杂,答案更简单......

谢谢!

2 个答案:

答案 0 :(得分:1)

您无法修改iFrame中的内容。特别是它的内容和形式。你可以改变外观(即高度/宽度/边框等)但是由于XSS问题(https://www.owasp.org/index.php/Cross_Frame_Scripting) - 你将无法修改iFrame中的内容。

但我的建议是,可能是域名的API请求?或者可能构建一个cURL解决方案,通过外部表单(webhooks)将数据发布到网站上。

答案 1 :(得分:0)

这里只是在黑暗中拍摄,但尝试使用iFrame对象的contentDocument?

http://www.w3schools.com/jsref/prop_frame_contentdocument.asp

编辑:既然你已经添加了使用php的想法,你可以通过php使用获取内容来获取页面并改变你想要改变的东西并输出delta。

我有点好奇,如果contentDocument的东西可以工作,我从未亲自尝试过(我回避iFrames!)