【问题标题】:OPEN (on click) an specific URL from a 'complex' URL从“复杂”网址打开(点击)特定网址
【发布时间】:2018-11-02 12:07:45
【问题描述】:

我有一个复杂的字符串 (URL),它是一个链接。

如何在click 上打开来自该 URL/字符串的特定 URL...而不是“父”URL?

父 URL 如下所示:

http://www.randomsite.com & 随机文本 & 我需要的网址

.

谢谢。

【问题讨论】:

  • 嗨@jorot,欢迎来到 Stack Overflow。你能给我们一些背景信息吗?您正在使用什么框架或库(如果有)?你都尝试了些什么?也许给我们看一些代码。我还建议您查看这个有用的资源,了解如何提出重要的 Stack Overflow 问题:stackoverflow.com/help/asking

标签: javascript url onclick mouseevent onclicklistener


【解决方案1】:

假设您的意思是从查询字符串中获取 url,例如http://www.randomsite.com?foo=bar&url=http://www.url-i-want.com

你可以这样做:

function getParameterByName(name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
}

var url = getParameterByName('url');

window.location.href = url;

参考:https://stackoverflow.com/a/901144/905653

【讨论】:

  • 有一些链接/网址;每个 URL 都是这样的“复杂” URL: URL1 + randomtext + URL2 。我想要做的是...单击每个“复杂” URL 以仅打开 URL2 (每种情况不同的 URL ...),而不是整个“复杂” URL。 谢谢
【解决方案2】:

这是一个简单的解决方案

function getUrlVar(stringUrl, name) {
  for (var value of stringUrl.split("?")[1].split("&")) {
    var valueArr = value.split("=");
    if (valueArr[0] === name) {
      return valueArr[1];
    }
  }
  return false;
}

var complexUrl = "http://www.whatever.com?lang=en&url=http://www.anyurlwhatsoever.com&test=loremipsum";

console.log(getUrlVar(complexUrl, "test"));
console.log(getUrlVar(complexUrl, "lang"));
console.log(getUrlVar(complexUrl, "url"));
console.log(getUrlVar(complexUrl, "asdasd"));

【讨论】:

    【解决方案3】:

    ...快完成了...! ;-)

    但是...我会更“具体”:

    ParentURL = URL1+随机文本+URL-我想要

    我想要做的是...点击链接/ParentURL 以打开链接/URL-我想要不是链接/ParentURL(我认为最好的“建议”是......以某种方式“指定”URL1的“部分”......以确保打开窗口的URL是 我想要的 URL,而不是 URL1) !

    谢谢。

    function getUrlVar(stringUrl, name) {
      for (var value of stringUrl.split("?")[1].split("&")) {
        var valueArr = value.split("=");
        if (valueArr[0] === name) {
          return valueArr[1];
        }
      }
      return false;
    }
    
    var complexUrl = "http://www.whatever.com?lang=en&url=http://www.anyurlwhatsoever.com&test=loremipsum";
    
    console.log(getUrlVar(complexUrl, "test"));
    console.log(getUrlVar(complexUrl, "lang"));
    console.log(getUrlVar(complexUrl, "url"));
    console.log(getUrlVar(complexUrl, "asdasd"));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-25
      • 2013-10-08
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 2018-04-25
      • 2013-07-13
      相关资源
      最近更新 更多