在JavaScript书签

时间:2017-03-28 21:36:50

标签: javascript url bookmarklet

原始网址

https://website.org/的目录/页 .PHP

更新了网址

https://sub1.sub2.site.com/files/content?site=mysite&path=/的目录/页 html的

我已经有了这个很棒的书签,用于将子域从生产服务器切换到开发。

javascript:location.href=location.protocol+"//"+"webproto"+"."+(location.host.split(".").length==3?location.host.split(".").slice(1,location.host.split(".").length).join("."):location.host)+location.pathname+location.search;

但我无法弄明白如何通过

将其提升到新的水平
  1. 用多个子域替换子域
  2. 替换域名扩展名
  3. 使用query和params添加路径
  4. 并切换扩展程序

1 个答案:

答案 0 :(得分:0)

因此,将其置于书签中,同时使其健壮是非常重要的。这是我的解决方案。

  1. 使用npm install -g webpack
  2. 安装webpack
  3. 创建如下文件布局:
  4. project/
      bookmarklet.js
      download/
         urlMunge.js
    
    1. bookmarklet.js的内容
    2. javascript: (function () {
         var jsCode = document.createElement('script');
         jsCode.setAttribute('src', 'https://YOUR_SERVER/bundle.js');
         document.body.appendChild(jsCode);
      }());
      
      1. urlMunge.js
      2. 的内容
        // put all in a function to make sure that we don't mess up whatever page
        // we are on.
        var urlMunge = function urlMunge() {
          var URL = require('url-parse');
          var EXT = '.html';
        
          // https://sub1.sub2.site.com/files/content?site=mysite&path=/directory/page.html
          test1 = window.location;
          var sourceUrl = new URL(test1);
          var formattedUrl = new URL('https://sub1.sub2.site.com/files/content');
          var pathname = sourceUrl.pathname;
          var host = sourceUrl.host;
          var query = {
            query: sourceUrl.query,
            path: pathname.slice(0, pathname.lastIndexOf('.')) + EXT,
            host: host.slice(0, host.lastIndexOf('.')) + '.com',
          }
        
          formattedUrl.set('query', query);
        
          console.log(formattedUrl.toString());
        }
        
        urlMunge();
        
        1. 添加url-parse库。 cd进入下载目录并运行npm install url-parse,这将创建一个带有url-parse及其依赖项的node_modules目录。

        2. 在下载目录中运行webpack urlMunge.js ../bundle.js,它将使用我们的代码和url-parse lib创建bundle.js。

        3. 将bundle.js放入网络服务器,您的书签可以加载它并进行测试。您需要查看浏览器的控制台以查看urlMunge的输出。