加载后,将HTML / JS代码添加到外部网页

时间:2013-12-09 01:44:14

标签: javascript php jquery html

是否可以加载像“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中解析页面然后将我自己的脚本附加到它并按照我在此处描述的回声来尝试这样做: Append HTML to page after redirect

这适用于没有重定向的简单页面,或者可以正确解析最终外部页面的情况。问题是我无法正确解析外部页面。如果没有前一页的代码(在重定向之前),解析的代码似乎不起作用。我需要在不解析/抓取/抓取的情况下执行此操作。

谢谢!


编辑:我已尝试按照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);
       }
     });
   }

2 个答案:

答案 0 :(得分:5)

无法将任何内容附加到您无法控制的页面,除非安装浏览器扩展程序(该扩展程序仅适用于安装了扩展程序的客户端)。

可以包含您在自己的页面内无法控制的页面内容(主要有两种方式:客户端iframe和服务器端拉),但是你似乎在说这不是你想要的。

答案 1 :(得分:0)

尝试这样的事情:

  var html = '';

  $.ajax({
      uri: 'http://ya.ru',
      method: 'POST',
      success: function(data){
          htmlx = data;
      }
  });

关于在var

中使用html进行操作
var test = $("<div/>");
test.append(html);

test.find(".innertest");

// When I'm ready to append it..

$('#container').append(test);

如果不起作用:

你可以使用你服务器上的另一个页面获取远程页面 之后使用ajax请求它

对不好的engl

抱歉