我想使用Tampermonkey更改ID为“ apple”的元素中的href
。
我的代码有效,它将href更改为www.google.com
。但是,当我单击链接时,它将带我到旧网站www.somewebsite.com
。
我不知道为什么会这样。 Tampermonkey可以延迟我的脚本运行吗?好像浏览器已经缓存了旧的href,因此,尽管jQuery脚本更改了href,但是单击该按钮时,它会将您重定向到旧的网站吗?
<div>
<a id="apple" href="www.somewebsite.com">click to visit my website<a/>
</div>
var GMnode,GMelID;
GMelID="nav-questions";
GMnode=document.getElementById("apple");
if((GMnode!==null)&&(GMnode.hasAttribute("href"))){
GMnode.setAttribute("href","http://www.google.com/");
}
// ==UserScript==
// @name Apple
// @namespace http://tampermonkey.net/
// @version 0.1
// @description testing!
// @author You
// @match *://*/*
// @run-at document-end
// @require https://code.jquery.com/jquery-3.3.1.min.js
// @grant none
// ==/UserScript==
答案 0 :(得分:1)
由于尚无法提供所需的示例,所以我们无法确定发生了什么,但是页面使用多种技术来掩盖或重写链接。他们这样做是出于恶意或广告目的(但我要重复一遍)。
因此,您的脚本失败或者是因为它触发得太早,或者是因为页面在您单击链接时就重写了链接。
scrollTop
还是www.google.com
?无论如何,有时可行的一种方法是忽略链接并创建自己的链接,就像这样:
www.somewebsite.com
但是有些页面很难编写脚本。 提供一个您所看到的有效示例。