我有一个使用AJAX发送一些HTML代码的问题,请参阅下面我的代码
<iframe src="http://www.w3schools.com" width="10" height="10" id="awc_frame"></iframe>
<script>var iframe = document.getElementById("awc_frame");</script>
下面是AJAX代码
<script>
$.ajax({
type: "POST",
url: "mobileView.php",
data: { val : iframe },
success: function(data){
console.log(data);
}
})
</script>
代码没有将变量发送到PHP文件。查看网络端,它发送文本,即如果我在iframe周围加上"",它会发送此代码"val = iframe",但不会发送iframe中的实际代码。"var iframe"确实有效,并会拉回iframe的HTML代码
请告诉我我做错了什么。
先谢了。
编辑:对不起,我需要发送的不是iFrame中的HTML代码,而是整个iFrame代码。
- 另一个编辑:当我公司的访问者访问我的网站时,我想用Javascript或Jquery从访问者的计算机加载内部网站,然后将客户端上该网站的所有代码发送到服务器,该服务器将在数据库中存储整个iFrame代码。**
4条答案
按热度按时间os8fio9y1#
这会将整个html发送到iframe中。
jtoj6r0c2#
首先,
var iframe
不包含iframe元素的HTML-它包含一个DOM节点,它是iframe元素的一种 Package 器(它包含该元素的各种属性,包括HTML)。接下来,您可能要等待iframe完全加载所有内容,因此必须绑定到它的
load
事件。类似这样的方法应该可以奏效:
在这个例子中非常重要
还有一件事--请注意,对于您自己域名之外的网站,此代码将不起作用(由于同源政策)。任何其他代码也不起作用。
9gm1akwq3#
由于javascript在从跨域iframe获取HTML时存在问题,因此您无法跨域执行此操作。但是,为什么不直接将iframe的src属性发送到PHP页面,然后使用file_get_contents获取HTML,然后存储它呢?
Javascript:
PHP语言:
jfgube3f4#
你想干什么?
上面的代码是iframe的一个javascript对象,它包含了很多属性。由于您使用的是jQuery,因此可以通过以下方式获得:
请记住,上面代码本身就是jquery对象格式的元素,您可以获得如下的元素对象:
如果你想获取iframe的HTML内容:
如果你能多解释一下你想做什么,我可以更新我的答复,以适合你。
***更新***考虑到您正在尝试执行的操作。
你可以用php来获取你需要的网站的内容:
正如@mdziekon所说,你首先应该等待,直到你的iframe加载,然后:
我希望它能解决你的问题