1

我时不时地托管文件阻止,我通过交易浏览这些“找不到页面”错误。

由于我厌倦了复制目标 url、取消转义、在地址栏中替换它并按 Enter,我编写了一个方便的书签来自动执行此操作:

(function () {
    var href = window.location.href;
    var loc = href.indexOf('url=');
    if (loc > 0) {
        var endLoc = href.indexOf('&', loc + 4);
        endLoc = endLoc > 0 ? endLoc : href.length;
        window.location.href = unescape(href.substring(loc + 4, endLoc));
    }
})()

现在的问题是 Chrome 在内部将无法访问的页面重定向到它自己的页面,bounce.php这会产生以下错误页面。

截屏

由于它支持history API,所以浏览器地址栏中的URL不会改变,从以下数据可以看出:

> JSON.stringify(window.history)  
{"state":null,"length":2}

现在的问题是,我的书签不起作用,因为window.location.href一旦"data:text/html,chromewebdata"发生这种情况。

我看过这个问题How do you get the previous url in Javascript? 其接受的答案是非常错误的。理所当然,document.referrer在我的情况下是空的。

那么有没有办法从中找到以前的URL window.historywindow.history.previous是非标准的,无论如何都不能在 Chrome 上运行。

4

1 回答 1

0

找到了一种方法(至少在它持续的时候!)

Chrome 将整个 URL 设置为document.title,因此只需要查询即可。如果有人感兴趣,这是修改后的代码:

(function () {
    var href = document.title;
    var loc = href.lastIndexOf('http');
    if (loc > 0) {
        var endLoc = href.indexOf(' is not available', loc);
        endLoc = endLoc > 0 ? endLoc : href.length;
        window.location.href = unescape(unescape(href.substring(loc, endLoc)))
    }
})()

注意unescape通过 Google Ads 提供的链接需要双精度。

于 2014-03-28T19:33:07.013 回答