Javascript:我可以通过javascript进行两个网站的互动吗?

时间:2018-02-09 08:08:14

标签: javascript same-origin-policy

这是一个简化的例子: 我使用两个在线词典,但每个词典只有一组我需要的功能。然而,点击两者并在两个地方输入单词是一种痛苦。 我想编写自己的javascript网页,它加载来自两个网站的元素,即单词的输入字段,然后在同一页面上显示两个网站的结果。

我的脚本需要从一个页面读取元素,并使用该数据 操纵另一页。

当我尝试研究这个时,我遇到了相同的原始政策,但显然铬那里有一个解决方法。我的问题是这可能是通过浏览器和javascript,或者我必须看一个完全不同的技术,如Python和webscraping。

2 个答案:

答案 0 :(得分:0)

是的,如果字典中包含可以与之交互的端点,则可以使用JS执行此操作。 (或者至少那是最简单的)。他们中的大多数都这样做。您通常只需谷歌dictionary name + API

如果您有权访问,则可以触发2个获取数据的请求,然后您可以在页面上显示这些数据。

答案 1 :(得分:0)

如果只是同时向两个网站查询同一个字词,您可以将您的网页设为两个iframe并设置src属性,如下所示:



$("#search").click(function () {
    var term = $("#term").val();
    $("#dictionary").attr("src", "http://www.dictionary.com/browse/" + term);
    $("#free").attr("src", "https://www.thefreedictionary.com/" + term);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input id="term" type="text" placeholder="search dictionaries">
<input id="search" type="button" value="Search"><br>
<iframe id="dictionary" src="about:blank" style="width:45vw;height:500px;"></iframe>
<iframe id="free" src="about:blank" style="width:45vw;height:500px"></iframe>
&#13;
&#13;
&#13;

网站的网址是他们的API。在您对其网站进行搜索后,请查看地址栏,了解如何自行构建地址栏。

<强>加成

我自己使用这样的不同网站,但通过自定义命令在浏览器中自动打开多个标签(您也可以通过Javascript进行)。

我在Linux上使用命令,如下所示(在.bashrc中声明):

function d {
    firefox "http://www.dictionary.com/browse/$1+$2+$3+$4+$5"&exit
}

这意味着,如果没有firefox打开,我可以打开一个终端(带有键盘快捷键)并输入d test来启动firefox并搜索字典test。如果firefox已经运行,它将被带到前台,网站将在新标签页中打开。

在Windows中,您可以添加批处理文件(*.bat)或命令文件(*.cmd)来执行相同的操作。在c:\windows中,您可以创建一个名为d.cmd的文件,其中包含:

start "" "http://www.dictionary.com/browse/%1+%2+%3+%4+%5"

然后使用键盘快捷键 Win + R 打开运行对话框并输入d test

运行对话框曾经位于“开始”菜单中,他们可能已将其隐藏在您的Windows版本中。

相关问题