编程语言
首页 > 编程语言> > javascript-设置Cookie然后加载页面的方法

javascript-设置Cookie然后加载页面的方法

作者:互联网

我经常访问一个具有“单击以更改为深色主题”按钮的站点.黑暗主题更容易阅读,因此每次访问我都必须单击链接(历史记录在关闭时清除).

我在装有Firefox的本地Linux机器上;因此可以使用Javascript,HTML,Python和Bash.

我专注于Bookmarklet,因为它似乎是正确的方法-但是,我正在做的事情没有起作用.我不精通Javascript,所以一直是查找和尝试示例的日子.可能无法作为“书签”,所以也许还有另一种方法吗?

书签-设置然后去

这是我所拥有的:

javascript:document.cookie="theme=dark; domain=example.org; path=/;"; location.href="http://www.example.org";

如果仅是cookie,它就可以工作;如果只加载该网站,则不能工作;但不能同时加载两者.我可以以编程方式首先转到页面,设置cookie,然后重新加载,但是那也不起作用.我不想单击两个链接. Cookie的存储方式是“ example.org”,以便正常访问,我认为Cookie只能在该会话中持续使用.

永久性Cookie

我无法让Firefox(IceCat)保留cookie.我在“例外”下设置为允许,但除非“关闭cookie直到过期”和“ Cookies”都未选中,否则都不会保留它.这样做可以将所有我不想做的Cookie保留在任何地方.

永久性Cookie

我曾尝试将cookie设置在一个不可变的文件中-但是Firefox不再将cookie保留在那里.它们在SQLite中.也许有一种方法可以在行上设置一个标志,使其永远不会被删除? User.js和prefs.js似乎不适用-但是否应该可以在prefs.js或user.js中设置cookie,以针对每个浏览器负载对其进行设置,从而创建“永久cookie”?

书签-转到然后单击

我尝试的另一件事是打开页面,然后以编程方式单击链接以加载深色主题:

javascript:location.href="http://www.example.org";document.getelementbyid('Dark').click();

该ID是已知的,并且是无效锚点(no href)的形式.该网站的javascript似乎正在监听click事件.这是他们所拥有的:

$('#Dark').click(function(){
    document.cookie='theme=dark; domain=.example.org; path=/';
    window.location.reload(true);
});

因此,它不应该像设置环境变量然后加载网站那样简单吗?也许JS没有环境变量?

注入并忘记它

我读到有可能将样式注入页面的顶部,因此我尝试注入:

 <script>document.getelementbyid('Dark').click();</script>

通过Bookmarklet,它看起来应该像在本地环境中进行点击一样有效.我永远都无法注入它,但是再次,我不懂Javascript.

最后一招

如果以上操作均不可行,是否可以将书签添加到本地.html文件中,该文件将给定域设置为cookie,然后重定向到该网站?最后一个不受欢迎的解决方案是实际脚本(.sh / .py)?

我不想共享站点,也不想在退出时清除历史记录.都不是因为您可能在想什么.

标签:bookmarklet,javascript,cookies
来源: https://codeday.me/bug/20191010/1884516.html