【问题标题】:Get URL Title from External URL without loading whole Website从外部 URL 获取 URL 标题而不加载整个网站
【发布时间】:2018-11-06 14:48:14
【问题描述】:

我有一个 javascript 代码,它显示文本区域/文本框中的所有 url。我想显示这些网址的网页标题。但我不想加载整个网站 (get_content),因为它会操纵我页面上的其他 javascript。如何显示标题?

我的代码

<script>
let result = $("#converted_url");
$("#textarea_input").on("input", function() {
  result.html("");
  var urlRegex = /(?:(?:http|https):\/\/)?([-a-zA-Z0-9.]{2,256}\.[a-z]{2,4})\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
  var found = [];
  $("#textarea_input").val().replace(urlRegex, function(url) {
    let trimmedUrl = url.replace(/^(?:https?:\/\/)?(?:www\.)?/i, "");
    if (found.includes(trimmedUrl)) {
      return;
    }
    found.push(trimmedUrl);
    var link = '<a target="_blank" href="' + url + '">' + TITLE + '</a>';
    result.append(link);
  });
});
</script>

应该输出如下内容:

【问题讨论】:

  • 正如@IceMetalPunk 在下面提到的,您必须先加载 html,然后解析出您想要和不想要的内容 - 所以只是您的情况下的标题。如果加载页面“操作我页面上的 Javascripts”,那么您将需要更改您的 javascript,使其不会发生冲突。例如,您的 javascript 中的函数可能与加载页面的 javascript 中的函数具有相同的名称,因此请为您的函数采用更多唯一名称 - 但如果您使用 AJAX,则不应发生这种情况。
  • 哦,好的。非常感谢您抽出宝贵的时间。

标签: javascript regex wordpress url textarea


【解决方案1】:

简单地说:你不能。网页的标题仅存储在其 HTML 内容中,因此如果不下载该内容,您将无法获取标题。我不明白“它操纵我页面上的 Javascripts”是什么意思——如果你对你想要的 URL 进行 AJAX 调用(假设它是同域或启用了 CORS),你会得到原始的将源代码作为字符串进行解析,不会影响页面上的任何其他内容。

【讨论】:

  • 非常感谢您的解释。猜猜我必须更改我的代码,以免发生冲突:/
  • 也许吧,但你真的没有首先解释什么是冲突的。获取 URL 请求的字符串内容不应以任何方式影响您的任何页面或其他脚本。您遇到的具体问题是什么?我们对问题了解得越多,就越能帮助您找到解决方案。
猜你喜欢
  • 2014-01-24
  • 1970-01-01
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 2013-03-16
  • 1970-01-01
  • 2011-07-21
  • 1970-01-01
相关资源
最近更新 更多