在外部网页中定位输入框
Targeting input box in a external web page
我是一个相当新的程序员,我需要一个建议,我如何才能做到这一点,
我的目标是能够在新 window 中打开一个新网站,例如 google.com 并在搜索输入框中输入一个字符串,而无需用户执行任何操作。
我看了很多关于如何实施的想法,但似乎没有找到我可以使用的解决方案。
我制作了一个触发此 javascript 功能的按钮:
function OpenPopupCenter() {
pageURL = 'http://www.google.com';
title = 'temp title';
w = (window.outerWidth * 0.67);
h = (window.outerHeight * 0.80);
var dualScreenLeft = typeof window.screenLeft !== "undefined" ? window.screenLeft : screen.left;
var dualScreenTop = typeof window.screenTop !== "undefined" ? window.screenTop : screen.top;
var width = window.innerWidth ? window.innerWidth :
document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
var height = window.innerHeight ? window.innerHeight :
document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
var left = ((width / 2) - (w / 2)) + dualScreenLeft -125;
var top = ((height / 2) - (h / 2)) + dualScreenTop;
var newWindow = window.open(pageURL, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
$(newWindow).ready(function () {
$("#lst-ib").val("Hello World");
});
window 打开显示 google 但我无法通过 ID lst-ib 定位输入框并将字符串 "Hello World" 插入其中,我在做什么它错了,任何人都可以指导我找到正确的解决方案或想出一个可能有效的解决方案。
在您的场景中,由于 Same-origin policy,这是不可能的。引用相关资料:
Under the policy, a web browser permits scripts contained in a first web page to access data in a second web page, but only if both web pages have the same origin
这是出于安全考虑。如果没有该政策,任何人都可以(例如)编写一个脚本来打开您的银行帐户网站并将您的所有资金转账给他们。
这里。当 Google 想要搜索某些内容时,它使用 base url: http://google.com/search?q= . What it's searching for goes after the '=', substituting the [spaces] with '+'. If I wanted to look up 'Genetic Algorithm', I'd strip the spaces and replace them with '+' so, it becomes 'Genetic+Algorithm'. I then would join this with the base url, so 'http://google.com/search?q=Genetic+Algorithm' 将是最后结果。除了 'search?q=' 之外,您还可以做其他事情,比如在最后添加 '&source=lnms&tbm=isch&sa' 让它做一个图像搜索。您可以将许多不同的标签用于不同的目的。我希望这有帮助。
我是一个相当新的程序员,我需要一个建议,我如何才能做到这一点,
我的目标是能够在新 window 中打开一个新网站,例如 google.com 并在搜索输入框中输入一个字符串,而无需用户执行任何操作。
我看了很多关于如何实施的想法,但似乎没有找到我可以使用的解决方案。
我制作了一个触发此 javascript 功能的按钮:
function OpenPopupCenter() {
pageURL = 'http://www.google.com';
title = 'temp title';
w = (window.outerWidth * 0.67);
h = (window.outerHeight * 0.80);
var dualScreenLeft = typeof window.screenLeft !== "undefined" ? window.screenLeft : screen.left;
var dualScreenTop = typeof window.screenTop !== "undefined" ? window.screenTop : screen.top;
var width = window.innerWidth ? window.innerWidth :
document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
var height = window.innerHeight ? window.innerHeight :
document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
var left = ((width / 2) - (w / 2)) + dualScreenLeft -125;
var top = ((height / 2) - (h / 2)) + dualScreenTop;
var newWindow = window.open(pageURL, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
$(newWindow).ready(function () {
$("#lst-ib").val("Hello World");
});
window 打开显示 google 但我无法通过 ID lst-ib 定位输入框并将字符串 "Hello World" 插入其中,我在做什么它错了,任何人都可以指导我找到正确的解决方案或想出一个可能有效的解决方案。
在您的场景中,由于 Same-origin policy,这是不可能的。引用相关资料:
Under the policy, a web browser permits scripts contained in a first web page to access data in a second web page, but only if both web pages have the same origin
这是出于安全考虑。如果没有该政策,任何人都可以(例如)编写一个脚本来打开您的银行帐户网站并将您的所有资金转账给他们。
这里。当 Google 想要搜索某些内容时,它使用 base url: http://google.com/search?q= . What it's searching for goes after the '=', substituting the [spaces] with '+'. If I wanted to look up 'Genetic Algorithm', I'd strip the spaces and replace them with '+' so, it becomes 'Genetic+Algorithm'. I then would join this with the base url, so 'http://google.com/search?q=Genetic+Algorithm' 将是最后结果。除了 'search?q=' 之外,您还可以做其他事情,比如在最后添加 '&source=lnms&tbm=isch&sa' 让它做一个图像搜索。您可以将许多不同的标签用于不同的目的。我希望这有帮助。