我需要编写一个webapp,它将检查站点是否包含一个元素(例如id为id =“iamhere”的div)。此站点可以是任何站点,它与我的脚本不在同一个域中。我想做类似的事情:
这似乎是不可能的 - 我是对的(脚本执行在window.location.assign()之后停止,并且没有办法将脚本标记“绑定”到网站的DOM)? 有人有想法,如何让它发挥作用?我知道我可以使用yql,但也许有更好的解决方案。
答案 0 :(得分:0)
查看JavaScript的setTimeout()功能。您可以通过以下方式定期检查准备情况:
function checkReadyState()
{
if (somethingIsReady) {
doStuffWhenReady();
}
else {
setTimeout(function() { checkReadyState(); }, 200); //Waits 200 milliseconds and calls checkReadyState() again.
}
}
答案 1 :(得分:0)
您需要使用脚本语言获取网站以充当代理。我将在这个例子中使用PHP:
<?php
$file = file_get_contents('http://www.google.com');
echo $file;
?>
必要时填充div - 您可以使用javascript进行填充。如果你正在使用jQuery,它看起来像这样:
<script>
$(function(){
$('#amihere').load('myphpproxyfile.php');
});
</script>
答案 2 :(得分:0)
我会使用YQL。
替换最后2个查询字符串参数并检查json结果。
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url=@url%20and%20xpath=@xpathformat=json&callback=cvfunc&url=<your-url>&xpath=<your-xpath>
示例:
http://query.yahooapis.com/v1/public/yql?format=json&callback=cbfunc&url=http://www.stackoverflow.com&xpath=//div[@id=%27header%27]&q=select%20*%20from%20html%20where%20url=@url%20and%20xpath=@xpath