[英]Add HTML/JS code to external web page after it has loaded
是否可以加载像“ http://www.google.com ”这样的外部网页,然后将我自己的 HTML/JS 代码附加到它的末尾(例如运行一个函数)?? 当然有一种方法可以加载外部页面然后在它之后添加一点我自己的代码? 像这样的东西:
<html>
<script>
document.location.href="http://www.google.com/"; //Load external page
function myscript() {
...blahblah
}
</script>
<button onclick="myscript();">Click me</button>
</html>
我希望该按钮位于外部页面的底部。 请不要在 php 中建议解析方法。 我已经尝试通过首先在 php 中解析页面然后将我自己的脚本附加到它并按照我在此处描述的进行回显来做到这一点: 重定向后将 HTML 附加到页面
这适用于没有重定向或可以正确解析最终外部页面的简单页面。 问题是我无法正确解析外部页面。 如果没有前几页的代码(重定向之前),解析的代码似乎无法运行。 我需要在不解析/抓取/爬行的情况下执行此操作。
编辑:我已经尝试按照 Amadan 的建议在 iframe 中显示外部页面:
<script>
function myscript() {
...blahblah
}
</script>
<iframe src="http://www.google.com/"></iframe>
<button onclick="myscript();">Click me</button>
</html>
但是,在 Firefox 中它只显示一个空白框,但在 IE 中它说“此内容不能在框架中显示:为了帮助保护您输入到此网站的信息的安全性,此内容的发布者不允许显示该内容在一个框架内。”
有什么办法可以解决这个问题吗?
编辑2:
我在这里包含了 jquery 和跨域脚本( https://github.com/padolsey/jquery.fn/blob/master/cross-domain-ajax/jquery.xdomainajax.js )。 这是我现在使用 ajax 获取内容的代码。 我将如何从那个转到实际显示网页中的内容? 对不起,我对 ajax/jquery 真的很糟糕!
function test () {
$.ajax({
url: 'http://www.google.com/',
type: 'GET',
success: function(res) {
var content = $(res.responseText).text();
alert(content);
}
});
}
除非安装浏览器扩展程序(然后仅适用于安装了扩展程序的客户端),否则您无法将任何内容附加到您无法控制的页面。
您可以在自己的页面中包含您无法控制的页面内容(主要有两种方式:客户端iframe
和服务器端拉取),但您似乎在说这不是您想要的。
尝试这样的事情:
var html = '';
$.ajax({
uri: 'http://ya.ru',
method: 'POST',
success: function(data){
htmlx = data;
}
});
关于在变量中操作 html
var test = $("<div/>");
test.append(html);
test.find(".innertest");
// When I'm ready to append it..
$('#container').append(test);
如果它不起作用,您可以使用服务器上的另一个页面来获取远程页面并使用 ajax 来请求它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.