我正在尝试与FireShot API集成以提供URL,将另一个网页的HTML抓取到div中然后截取它的屏幕截图。
获取HTML后我需要做的一些事情
<link>
&amp;来自<script>
<head>
<body>
进入<div>
但是,1,当我尝试做
时$.get("http://google.com", function(data) { ... });
我得到一个200的萤火虫红色。我认为这与网站不允许你用JS抓住他们的页面有关吗?然后打开一扇窗户我能做的最好?但是我如何使用jQuery控制其他页面或在该页面上调用fsapi?
更新
当新窗口准备就绪时,我尝试执行类似下面的操作,但FireBug说“权限被拒绝访问属性'文档'”
w = window.open($url.val());
setTimeout(function() { // if I dont do this, I always get about:blank, is there a better way around this?
$(w.document).ready(function() {
console.log(w.document.body);
});
}, 1000);
答案 0 :(得分:2)
我相信Javascript中的跨站点安全设置基本上阻止了这一点。您可能需要通过自己的域代理内容。
我认为还有其他一些选项可以打破跨站点安全限制,但我不确定是否会推广它们。
答案 1 :(得分:2)
如果“其他页面”位于您的托管页面的同一个域中,是的,您可以。请参阅jQuery的$().load()
API。
否则,浏览器的跨站点安全策略不允许您这样做。此时,您可以选择使用iFrame而不是DIV。
一些jQuery插件,例如thickbox提供了自动将页面加载到适当容器的功能。
答案 2 :(得分:1)
除非我是正确的,否则我认为你不能跨页面跨域AJAX(例如从domain1.com到domain2.com)。为了解决这个问题,您可以使用PHP“代理”脚本来“获取”页面,然后将其传递给JS。
例如,在JS中你会得到()http://mydomain.com/get/?domain=http://google.com然后做你需要做的事情!