如何使用chrome控制台导航到bing.com并输入搜索文本?

时间:2017-01-19 09:29:41

标签: javascript html

以下是我的代码。 这导致了意外的行为。 它导航到bing.com但它没有填写文本字段。此外,我注意到导航到新网页后控制台已被清除。

window.location = "https://www.bing.com";
window.onload = function(){
    var editSearch = document.getElementById("sb_form_q");
    editSearch.value = "Quux";
}

3 个答案:

答案 0 :(得分:5)

您正在将onload函数绑定到现有的window对象。

当浏览器加载新页面时,它会生成一个新的window对象,该对象不会在其上设置您的属性。

JavaScript在一个页面中运行(即使您通过开发人员工具运行它)也无法将变量保存到不同的页面上。

(可以使用localStorage和cookies等存储机制,但您需要在后续页面中查找代码)。

答案 1 :(得分:2)

JavaScript仅对您所在的当前页面有效。当您从DevTools控制台执行代码时,您正在该页面上执行代码。因此,当您使用window.location导航到另一个页面时,您将丢失已定义的onload处理程序。

要将处理程序添加到其他页面,必须以某种方式将其连接到您的页面(父级),例如iframe或弹出窗口。

ifrm = document.getElementById('frame');
ifrm.src = 'http://example.com';
ifrm.contentWindow.onload = function () {
    // do something here with
    // ifrm.contentWindow.document.getElementById('form')
}

答案 2 :(得分:1)

正如@Quentin所说。

但你可以采取另一种方式......

var keyword = "Quux";
window.location = "https://www.bing.com/search?q="+keyword;