在外部网页中定位输入框

时间:2017-05-25 21:24:04

标签: javascript jquery target popupwindow

我是一个相当新的程序员,我需要一个如何使这成为可能的建议,

我的目标是能够在新窗口中打开一个新网站,例如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”插入其中,我做错了,任何人都可以指引我找到正确的解决方案或想出一个可能有用的。

2 个答案:

答案 0 :(得分:0)

在您的方案中,由于Same-origin policy,这是不可能的。引用相关信息:

  

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

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

答案 1 :(得分:0)

下面。当 Google 想要搜索某些内容时,它会使用基本网址http://google.com/search?q=。它在' =' 之后搜索的是用' +&替换 [空格] #39; 即可。如果我想查找'遗传算法' ,我会删除空格并用' +' 因此,它变成' Genetic + Algorithm' 。然后我会加入这与基本网址,所以' http://google.com/search?q=Genetic+Algorithm'这将是最终的结果。除了'搜索?q =' 之外,还有其他一些功能,例如添加'& source = lnms& tbm = isch& sa' 到最后使它进行图像搜索。您可以使用许多不同的标签用于不同的目的。我希望这有帮助。