更改标签的 href

Change a tag's href

我正在为 Instagram 创建用户脚本。 我想做的是更改 <a> 标签的 href。此标签没有任何 ID/class.

我已经找到了如何 select 它:

var x = document.querySelector(".oJZym").getElementsByTagName("a");
x[0]

我想让它打开一个新标签页 https://instagram.com/nukl3ar_p/ 。 我已经试过了:

var x = document.querySelector(".oJZym").getElementsByTagName("a");
x[0].href = "https://instagram.com";

var x = document.querySelector(".oJZym").getElementsByTagName("a");
x[0].onclick = window.open("https://instagram.com/nukl3ar_p/", "_blank");

但它一直在重定向我,甚至没有点击它。如何修复?

试试这个,使用 CSS 选择器 > 得到 child <a> 然后设置 href.

var x = document.querySelector(".oJZym>a");
x.href = "https://instagram.com/nukl3ar_p/";
x.target ='_blank';
<div  class="oJZym" ><a href="/">Test</a></div>

var x = document.querySelector("oJZym a")
x[0].href = "https://instagram.com";

你可以使用d3库这样修改:

<script src="https://cdn.jsdelivr.net/npm/d3@7"></script>
<script>

const div = d3.select(".oJZym").select("a")
              .attr("href","https://instagram.com/nukl3ar_p/")
              .attr("target","_blank");

</script>

此脚本将使用 d3 库select“.oJZym”class 中的超链接并设置其 href 和目标属性。

试试这些线路..

var x = document.querySelector("oJZym + a")
x[0].href = "https://instagram.com";

因为当页面被提升时,您的代码就会被执行。所以他们在这里重定向。您需要使用 preventDefault 来阻止它。

x[0].onclick = function(event){
      event.preventDefault()
      window.open("https://instagram.com/nukl3ar_p/", "_blank");
}