bookmarklet是一个书签,其地址是JavaScript代码。
我想获取当前页面的URL并将其粘贴到Bing搜索页面的文本框中。
我可以轻松获取网址:
javascript:(function(){var%20url=window.location.href;alert(url);})();
但是,如何将Bing页面上的文本框设置为我的变量url
,然后进行搜索?
这不起作用:
javascript:(function(){var%20url=window.location.href;window.open%20("https://www.bing.com/search?q=&url");})();
答案 0 :(得分:3)
使用以下bookmarklet代码:
javascript:{window.location='http://bing.com/search?q='+encodeURIComponent(window.location.href)}
答案 1 :(得分:0)
当然,您可以按照上面的方式进行操作。但是,我一直处于这种情况,我想在我的应用程序中控制要显示的内容。
然后我决定从Bing API连接我的应用程序。好处是它是免费的,您不会将用户带离您的网站。
您需要从Azure Market Place获取API密钥
以下是您可能希望尝试的代码,可能是将来。
<html>
<head>
<title>BING API Integration</title>
<SCRIPT type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#searchButton').click(function(e){
$("#results").empty();
var query=$('#searchTerm').val();
if ( query) {
serviceOp = "Web";
search(query, serviceOp);
}
});
});
function search(query, serviceOp){
// your account key that youw ill get from https://datamarket.azure.com
var acctKey = '<Your Key>';
var rootUri = 'https://api.datamarket.azure.com/Bing/Search';
var requestUri = rootUri + "/" + serviceOp + "?$format=json&Query='" + query + "'";
$.ajax({
type: "GET",
url: requestUri,
headers: {
"Authorization": "Basic " + window.btoa(acctKey + ":" + acctKey)
},
}).done(function(o){
if ( o.d !== undefined){
var items = o.d.results;
for(var idx=0, len= items.length; idx < len; idx++ ){
var item = items[idx];
switch(item.__metadata.type){
case 'WebResult':
showWebResult(item);
}
}
}
});
}
// Shows one item of Web result.
function showWebResult(item) {
var p = document.createElement('p');
var a = document.createElement('a');
a.href = item.Url;
$(a).append(item.Title);
$(p).append(item.Description);
$('#results').append(a, p);
}
</script>
</head>
<body>
<label for="searchTerm">Search: </label>
<input id="searchTerm" type="text"/>
<button id="searchButton">Search</button>
<div id="results">
</div>
</body>
</html>