2017-05-25 90 views
1

我是相当新的程序员,我需要一个建议我怎么能做到这一点,瞄准输入框在外部网页

我的目标是能够在例如新窗口中打开一个新的网站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"); 
    }); 

的窗口打开显示谷歌,但我无法目标由ID LST-IB和插入字符串“Hello World输入框中“进入它,我做错了,任何人都可以指导我找到正确的解决方案,或者想出一个可行的解决方案。

+0

这听起来像是一项违反JavaScript跨域策略的任务,因此可能无法实现。请记住,一个可以控制另一个网站的网站可以访问诸如银行信息或电子邮件等敏感内容。也许在网站“Let Me Google That For You”中看到的“假”收购可以激发你的需求? –

回答

0

在你的情况下,这是不可能的,因为Same-origin policy。引用的相关信息:

根据该政策,web浏览器允许包含在第一网页的第二网页访问数据的脚本,但前提是这两个网页具有相同的原始

这是出于安全原因。如果没有这项政策,任何人都可以(例如)编写一个脚本来打开您的银行账户网站,并将所有的钱转让给他们。

0

这里。当谷歌想要搜索的东西,它使用基地址http://google.com/search?q=。它搜索的内容是在'='之后,用[空格]替换为'+'。如果我想查找'遗传算法',我会去掉空格并用'+'替换它们,所以它变成'Genetic + Algorithm'。然后我会加入这与基地网址,所以'http://google.com/search?q=Genetic+Algorithm'将是最终结果。还有其他的东西,你可以再说“搜索?Q =”,比如增加“&源= LNMS & TBM = isch &山”到最终使得做一个图片搜索。有许多不同的标签可以用于不同的目的。我希望这有帮助。