gpt4 book ai didi

javascript - 将数据从一个打开的浏览器选项卡移动到另一个选项卡的有效方法是什么?

转载 作者:行者123 更新时间:2023-12-01 14:00:56 27 4
gpt4 key购买 nike

我正在寻找一种从一个网页中获取一些数据并将其放入另一个网页的快速方法。我无权访问第二页 URL 中的查询字符串,因此无法以这种方式传递数据。现在,我将 Greasemonkey 用户脚本与 JS 书签触发器结合使用:javascript:doIt();

// ==UserScript==
// @include public_site
// @include internal_site
// ==/UserScript==

if (document.location.host.match(internal_site)) {
var datum1 = GM_getValue("d1");
var datum2 = GM_getValue("d2");
}

unsafeWindow.doIt = function() {
if(document.location.host.match(public_site)) {
var d1 = innerHTML of page element 1;
var d2 = innerHTML of page element 2;
//Next two lines use setTimeout to bypass GM_setValue restriction
window.setTimeout(function() {GM_setValue("d1", d1);}, 0);
window.setTimeout(function() {GM_setValue("d2", d2);}, 0);
}
else if(document.location.host.match(internal_site)) {
document.getElementById("field1").value = datum1;
document.getElementById("field2").value = datum2;
}
}

虽然我对另一种方法持开放态度,但如果可能的话,我更愿意继续使用这个基本模型,因为这只是 doIt() 中代码的一小部分,它被用于其他几个页面,主要用于自动化基于日期的表单填写;人们真的很喜欢他们的“魔法按钮”。

上面的代码有效,但是工作流程有一个中断:为了让用户知道从公共(public)站点的哪个页面获取数据,必须首先打开内部页面。然后,一旦从公共(public)页面设置了 GM cookie,就必须重新加载内部页面,以便将正确的信息放入内部页面变量中。我想知道是否有任何方法可以在 bookmarklet-clicktime 时 GM_getValue() 来防止需要刷新。谢谢!

最佳答案

您能否将小书签移动到一个按钮或链接——Greasemonkey 将添加到页面?然后您可以设置点击事件处理程序来触发 GM_getValue()。

看起来当前的方法正在利用一个“安全漏洞”——一个可能在未来被关闭的漏洞。相反,您可能会考虑在 Firefox 扩展中完成所有操作。

可能有用的链接:http://articles.sitepoint.com/article/ten-tips-firefox-extensions/1

关于javascript - 将数据从一个打开的浏览器选项卡移动到另一个选项卡的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2256542/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com