有没有什么方法可以在没有实际加载的情况下引用给定的网站?例如,如果我想在雅虎的头版搜索文本“香蕉”......
var site = (location.href ="http://yahoo.com");
var arraycontainsturtles = (site.indexOf("Bananas") > -1);
window.prompt(arraycontainsturtles)
这将加载yahoo,然后弹出一个提示为true或false。如果没有物理加载Yahoo,我怎么会获得这种行为,而只是提示说真或假?
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以向您的网址发送ajax get请求,并以json或类似内容的形式返回内容。这是你使用jquery的方法。
$.get('www.yourwebsite.com?searchParam=banana', function(data) {
// data will contain the search results for your keyword banana
});
假设:您需要在www.yourwebsite.com上编写一个脚本,以便通过searchParam(在本例中为banana)传递值,并从数据库中搜索内容并返回。
答案 2 :(得分:0)
您的脚本未加载任何外部网站。您基本上是在创建一个正在搜索的字符串 - 这就是site.indexOf("yahoo");
为true
,但site.indexOf("bananas");
为false
的原因。
您可以将许多API用于许多搜索引擎,这些API允许您以[通常] XML格式检索搜索结果。这需要使用服务器端语言(如PHP)来完成。
答案 3 :(得分:0)
您基本上是在寻找HTML抓取功能的基本形式。这篇文章列出了可用于实现功能的一些选项 - Options for HTML scraping?
答案 4 :(得分:0)
您可以使用YQL从页面获取文本内容(通过发出AJAX请求),然后搜索文本。
var url='http://google.com';
$.get('http://query.yahooapis.com/v1/public/yql?q=select%20*%20%20from%20html%20where%20url%3D%22'+encodeURI(url)+"%22", function(resp){
var text = $(resp).text(); // text from url
console.log( text.search('google') ); // search for "google"
});
以下是jsfiddle的示例。