Javascript bookmarklet将当前页面的url发送给bing

时间:2014-09-13 04:30:27

标签: javascript bookmarklet

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");})();

2 个答案:

答案 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>