gpt4 book ai didi

javascript - 如何修改此 Javascript 以在不同窗口中打开链接?

转载 作者:行者123 更新时间:2023-11-30 09:00:29 24 4
gpt4 key购买 nike

我找到的这个 Javascript here将方法 parseURL() 添加到字符串对象,这样如果其中有任何链接,它将用标签包围它们,以便它们变得可点击。

String.prototype.parseURL = function() {
return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&~\?\/.=]+/g, function(url) {
return url.link(url);
});
};

首先,这是如何工作的?我对正则表达式了解一点,可以制作简单的表达式,但我什至没有在这里看到“href”这个词!

如何修改以便链接在另一个窗口中打开?即如何在此处添加 target="_blank" 属性?

最佳答案

First of all, how does this even work?

显然,在代码的其他地方您会发现:

String.prototype.link = function(url) { /* ... */ };

...这将以返回字符串结束。 replace 所做的是调用传递给它的匿名函数,并将与正则表达式匹配的字符串作为参数; replace 期望该函数返回适当的替换,然后将其插入到字符串中。 (replace 的第二种形式,它接受一个函数而不是字符串作为第二个参数,它非常有用,但并不像您预期​​的那样广为人知。)匿名函数正在调用 link 函数在参数 (url) 上,它是一个字符串,并返回结果。因此,我相信您会在代码的某处找到一个 link 函数被添加到 String.prototype

至少一些浏览器向 String 实例添加了一堆非标准方法,将字符串包装在标签中; link是其中之一。它仅返回使用给定 URL 的 a 元素的标记。

How can this be modified so that the link opens in another window?

实际上第一个问题的答案就是第二个问题的答案:大概您会在 link 函数中找到标记;你可以在那里更新它。

只需将非标准 link 函数的使用替换为您自己的字符串连接即可:

return '<a href="' + url + '">' + url + '</a>';

通常我会说您应该确保对 HTML 实体进行编码,但是当您已经处理 HTML 源字符串时,大概它们应该已经被正确编码了。

关于javascript - 如何修改此 Javascript 以在不同窗口中打开链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9707374/

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