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

Javascript: can I make two websites interact via javascript?

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

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

当我尝试对此进行研究时,我遇到了同源策略,但显然 chrome 有一个解决方法。我的问题是,这是否可以通过浏览器和 javascript 实现,或者我是否需要研究完全不同的技术,例如 Python 和网络抓取。

是的,如果字典有您可以与之交互的端点,您可以使用 JS 来做到这一点。 (或者至少那是最简单的)。他们中的大多数人都这样做。你通常可以简单地 google dictionary name + API.

如果您有权访问它,您可以发出 2 个请求来获取数据,然后您可以在它返回后显示在您的页面上。

如果只是同时查询两个网站的同一个术语,你可以让你的网页有两个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>

网站的URL就是他们的API。在他们的网站上进行搜索后,只需查看地址栏即可了解如何自行构建它。

奖金

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

我在 linux 上使用如下命令(在 .bashrc 中声明):

function d {
    firefox "http://www.dictionary.com/browse/++++"&exit
}

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

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

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

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

运行 对话框曾经在开始菜单中,他们可能在您的 windows 版本中隐藏了它。