首先,我知道这个问题可能听起来相当复杂,但我希望不是那么多。
我的目标如下:
我有一个页面 mypage.php ,我有一个按钮(其ID为按钮,它只是使用css绘制的div样式)在这个页面中。当我点击这个按钮时,我想:
1)加载外部网站
的内容2)一旦网站完全加载:
请注意,最后一点是针对我可选:唯一重要的是用户可以使用已加载的网站,因为他们将其地址写入浏览器的网址地址栏
mypage.PHP 的结构:
<html>
<body>
<div class="mybutton" id="mybutton"> </div> <br/>
<div id="content"></div>
</body>
</html>
外部网站的结构:
<html>
<head> <!-- SOMETHING..including styles,javascript,title,metatags etc. --> </head>
<body>
<input type="text" id="my_field" value="" /><br/>
<div class="external_button" id="external_button"> </div>
</body>
</html>
我搜索了互联网并发现了这种可能的解决方案(但我不知道如何“合并”也不使用它们): 1)使用 uframe 加载外部网站。 首先,我不明白我是否可以使用 PHP 或仅使用ASPX。然后我不明白它是如何工作的。
a + b)完成文本字段并触发事件:使用 jquery 。我尝试使用Chrome Dev Tools尝试(直接在我的浏览器中加载网站),但显然它不起作用。
$("#external_button").trigger("mousedown")
c)我想这可以使用标题 php函数(或使用 javascript:reload )来完成
任何建议都非常感谢。 提前谢谢。
答案 0 :(得分:1)
Chrome和FF遵循同源策略,以保护最终用户免受跨脚本攻击。
因此,您无法在页面中包含的IFrame或Div中加载外部网站,除非加载页面的目标网站允许在IFrame中加载页面。
如果您拥有目标网站的来源,以下关于SO的查询应该提供一个指针,说明如何在DIV中加载外部网页
Overcoming “Display forbidden by X-Frame-Options”
但是,您尝试解决的问题可以按照以下方式完成:
将外部网页加载到DIV中,并提供一个回调函数,该函数在加载完成时将起作用,如下所示。以下代码必须放在myPage.php的JS文件中:
//define the call back function that will trigger when the target page loads
var loadedFunction = function() {
alert("Target web page completed loading");
//txtSampleTarget is the name of the text box to be populated.
$("#my_field").val("Finished loading");
//perform more javascript actions here.
$("#external_button").trigger('click');
}
$(document).ready(function() {
$("#loadButton").click(function(event) {
$("#contentDiv").load(url, loadCompleteCallback);
});
});
希望这会有所帮助......