【问题标题】:Javascript | Link/Bookmarklet to replace current window locationJavascript |链接/书签替换当前窗口位置
【发布时间】:2015-04-22 15:49:39
【问题描述】:

我经常使用网页的三种变体,1) 开发 url,2) 预览/暂存 url,以及 3) 和实时 url。

我想创建一个链接(书签?),然后我可以添加到我的书签栏,这将更改部分 URL 字符串(基本上是页面名称),然后将生成的 URL 加载到新选项卡(或相同选项卡,如果更简单)中。

示例: 在具有 Dev URL 的页面上工作:

https://dev.mysite.com/cf#/content/www/page1.html

我希望能够单击链接并重新加载页面并在相同或新窗口/选项卡中返回以下暂存 URL:

https://preview2.mysite.com/page1.html

然后,如果我再次单击该链接,我希望页面重新加载并在相同或新窗口/选项卡中返回以下实时 url:

http://www2.mysite.com/page1.html

然后如果我再次单击该链接,我希望页面重新加载并在相同或新窗口/选项卡中返回以下开发 url:

https://dev.mysite.com/cf#/content/www/page1.html

因此,当我在开发、测试和访问页面的实时版本时更改这些 url 变体时,我基本上希望避免大量剪切/复制和粘贴。

这是我到目前为止的位置.. 停留在最基本的方面,如果在开发页面上,请重新加载到预览页面:

joewiz.org "fixing-urls-with-dns-errors" 的方法的变体 而这个来自 Stack user63503 "how to replace part of the URL with JavaScript?" 并且还尝试了来自 W3Schools 的 str.replace。

javascript:(function(){window.location.url.replace("dev.mysite.com/cf#/content/www/","preview2.mysite.com/");})();

javascript:(function(){window.location.pathname.replace("dev.mysite.com/cf#/content/www/","preview2.mysite.com/");})()

如您所知,这只是其中一个步骤,我已经陷入困境。我尝试了很多变体,但我无法替换 url 的特定部分,更不用说添加规则以根据当前浏览器的位置重新加载到开发、预览、直播。

我意识到已经提出了非常相似的问题,但我担心我无法从我找到的问题中推断出可操作的信息。但是,如果您觉得以前的帖子有相关性,请告诉我,我会去那里学习。

非常感谢大家!!

【问题讨论】:

  • 尝试使用 location.href 而不是 location.pathname。还要检查控制台是否有错误。此外,在某些浏览器中,您必须从书签而不是位置栏运行 javascript
  • @mplungjan 谢谢,我试过了,javascript:(function(){window.location.href.replace("preview2","www2");}) 但还是不行。
  • 控制台有错误吗?
  • 对不起,我也应该回复那部分:)。没有错误,它只是不做任何事情。如果我删除一个字符或弄乱代码并按下链接,我会得到一个错误信息。只是没有开火。我也尝试在其他网站上尝试替换部分 URL,但仍然没有运气或错误。

标签: javascript html google-chrome url bookmarklet


【解决方案1】:

您的代码应该可以工作。

但是试试这个

javascript:(function(){var loc=location.href;loc=loc.replace('dev.mysite.com/cf#/content/www/','preview2.mysite.com/'); location.replace(loc)})()

请记住将其复制到真实书签的 URL 中 - 我通常会向人们发送一个他们可以从中拖动的网页,因此引号确实很重要:

<a href="javascript:(function(){var loc=location.href;loc=loc.replace('dev.mysite.com/cf#/content/www/','preview2.mysite.com/'); location.replace(loc)})()">ReplaceUrlBM</a>

【讨论】:

  • 这太棒了!我无法让我的代码工作,但这完美!你到底是怎么想出来的?这就是我最终使用的:javascript:(function(){var loc=location.href;loc=loc.replace(/.*\/us/,"dev.mysite.com/cf#/content/www/us"); location.replace(loc)}) () 等等。
  • 我写书签已经超过 15 年了;)
  • 这样就行了! :) 另外,稍有变化,我改用单引号。这使我可以在需要时将链接放在页面上,并将链接拖放到浏览器栏中,而不是编辑和复制/粘贴代码到现有书签中。即...'dev.mysite.com/cf#/content/www/us')...再次感谢!!
  • 某些浏览器不再允许在 Url 栏中使用 javascript 协议 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
  • 2011-07-17
  • 2021-07-12
相关资源
最近更新 更多