恢复旧的Facebook照片查看器 - Chrome扩展程序

时间:2011-02-11 08:42:37

标签: javascript html facebook google-chrome

如果您注意到,Facebook有一个新的照片查看器...事实上,要更换原始照片查看器,您只需删除URL上的“&影院”选项并重新加载网页即可。 我希望通过chrome扩展程序自动完成此操作。 我已经有了检索URL的代码:

<html>
<head>
<script>
window.addEventListener("load", windowLoaded, false);
function windowLoaded() {
  chrome.tabs.getSelected(null, function(tab) {
    document.getElementById('currentlink').innerHTML = tab.url;
  });
}
</script></head>
<body>
<p id="currentlink">Loading ...</p>
</body>
</html>

我无法从字符串中删除“&amp; theatre”,然后使用新编辑的网址重新加载(不使用&amp;影院)

提前致谢。

1 个答案:

答案 0 :(得分:0)

我为此做了一个小提琴:下面的http://jsfiddle.net/ArkahnX/LxkZs/2/(来自http://snipplr.com/view.php?codeview&id=799的功能),与之前的相同,除了它将除了影院之外的所有变量都粘贴到URL中。从那里,您可以使用URL执行您想要的操作。如果tab.url ==新网址,那么你不应该重新加载页面,或者你需要扩展程序做的任何其他事情。

<html>
<head>
<script>
function getUrlVars(url) {
    var vars = [],
        hash;
    //get URL variables
    var hashes = url.slice(url.indexOf('?') + 1).split('&');
    //get domain
    var domain = url.split("?")[0];
    for (var i = 0; i < hashes.length; i++) {
        //separate variable and parameter
        hash = hashes[i].split('=');
        //get everything but theater
        if (hash[0] !== "theater") {
            vars.push(hash[0]);
            var index = vars.indexOf(hash[0]);
            vars[index] = hash[0]+"="+hash[1];
        }
    }
    //mash it all back together
    return domain+"?"+vars.join("?");
}
window.addEventListener("load", windowLoaded, false);
function windowLoaded() {
  chrome.tabs.getSelected(null, function(tab) {
    document.getElementById('currentlink').innerHTML = getUrlVars(tab.url);
      if(tab.url === getUrlVars(tab.url)) {
          //do nothing
      } else {
          //do something
      }
  });
}
</script></head>
<body>
<p id="currentlink">Loading ...</p>
</body>
</html>