如何使用 Javascript 交换出对 HTML 访问受限的 h2 URL 目标?

发布于 2024-12-22 20:52:55 字数 863 浏览 2 评论 0原文

我无权访问 HTML 代码,但可以访问文档页脚中的 Javascript。话虽如此,我想用我选择的新 URL 替换 URL“/vistor_signup”。可以说“http://www.example.com/account_signup

我也想做对于“/user_signup”也是如此,可以说交换到“http://www.example.com/master_signup"

我必须使用 JavaScript 来执行此操作,而且我对 JS 没有任何了解。

如何使用 JS 代码实现此功能?

我的代码

<div class="grid_12">
<div id="login">
<div class="panel" id="login-form">
<div id="login-promo">
<div class="clear"></div>

<h2><a href="/vistor_signup">Visitor Sign-Up</a> ></h2>

<h2><a href="/user_signup">User Sign-Up</a> ></h2>

</div>
</div>
</div>
</div>
</div>

I don't have access to my HTML code but I have access to Javascript in the footer of my document. With that being said I would like to switch out the URL "/vistor_signup" with a new URL of my choosing. Lets say "http://www.example.com/account_signup"

And I would also like to do the same for "/user_signup", lets say swap to "http://www.example.com/master_signup"

I have to use JavaScript to do so and I don't have any understanding of JS.

How do I make this work with JS code?

My code

<div class="grid_12">
<div id="login">
<div class="panel" id="login-form">
<div id="login-promo">
<div class="clear"></div>

<h2><a href="/vistor_signup">Visitor Sign-Up</a> ></h2>

<h2><a href="/user_signup">User Sign-Up</a> ></h2>

</div>
</div>
</div>
</div>
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

久而酒知 2024-12-29 20:52:55

你的意思是这样的:

var anchors = document.body.getElementsByTagName("a");
for(var i=0; i < anchors.length; i++) {
  var anc = anchors[i];
  if (anc.getAttribute("href") == "/visitor_signup") { 
    anc.setAttribute("href", "http://www.example.com/account_signup");
  } 
}

警告:由于浏览器呈现 HTML 的方式(解析页面、半顺序获取引用的资源、一路评估 javascript),可能会发生有人在之前看到 html您的脚本被执行,甚至单击“/visitor_signup”链接。

you mean something like this:

var anchors = document.body.getElementsByTagName("a");
for(var i=0; i < anchors.length; i++) {
  var anc = anchors[i];
  if (anc.getAttribute("href") == "/visitor_signup") { 
    anc.setAttribute("href", "http://www.example.com/account_signup");
  } 
}

WARNING: due to the way browser render HTML (parsing the page, semi-sequentially fetching referenced resources, evaluating javascript along the way), it might happen that someone sees the html before your script gets executed, and even clicks the '/visitor_signup' link.

荒路情人 2024-12-29 20:52:55

在你的限制下,尤其是。

  • 无法访问代码
  • 元素上没有 id 标签,

您最好的选择是

  • 使用 document.body.GetElementsByTagName() 查找
  • 那些检查 href 属性的
  • 所有标签,相应地更改它

编辑:这正是 @milan 的答案所做的,所以请忽略此一

Under your limitations, esp.

  • No access to code
  • No id tag on elements

your best bet is to

  • use document.body.GetElementsByTagName() to find all tags
  • on those check the href property
  • change it accordingly

EDIT: This is exactly what @milan's answer does, so please disregard this one

丘比特射中我 2024-12-29 20:52:55

由于您无法编辑 HTML 并且

没有区别,因此使用 jQuery 可能比使用纯 JS 更容易访问元素。

这个 jQuery 可以是:

$('#login-promo h2:first a').attr("href", "/account_signup").parent().next().find('a').attr("href", "/master_signup");

这里我们选择第一个

; 并更改其 href。然后我们返回 的父级,找到下一个

并更改其 href。

您可以在 this jsfiddle 中查看示例。

Since you can't edit the HTML and the <h2>s aren't differentiated, using jQuery might be easier than using plain JS in order to reach the elements.

This jQuery could be:

$('#login-promo h2:first a').attr("href", "/account_signup").parent().next().find('a').attr("href", "/master_signup");

Here we are selecting the first <h2> <a> and changing its href. Then we go back tho the <a>s parent, find the next <h2> <a>and change its href too.

You can check an example in this jsfiddle.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文