天天看點

使用 JavaScript 實作 iframe 判斷和頁面重定向背景方案參考文獻

今天我突然發現 google 已經能夠索引我的部落格了,外在特征就是我能用 google 對部落格進行站内檢索。

我随便搜尋了一下,發現 google 索引的 timeline 的内容,全都指向了作為 iframe 嵌入的 /blog/timeline/timeline.html 頁面,而不是我期望的頁面。這其實也不是 google 的錯,因為 iframe 中的内容,本來就是不會被爬蟲認為是目前頁面的内容。

從 google 的搜尋結果直接點進 timeline,就隻能看到一個純淨的時間軸,看起來這個頁面跟我的部落格沒有半毛錢關系。那怎麼才能讓 google 的搜尋結果指向部落格頁面呢?

我首先想到了用 javascript 來控制頁面跳轉,這個幾乎是最經濟的實作方式了。

方案標明之後就是定位問題,我要解決的問題有 2 個:

如何判斷目前頁面是從 iframe 通路的,還是直接通路的?

如何控制頁面跳轉?

我在 stack overflow 找到了兩個問題的答案,見參考文獻。以下是解決問題的代碼。

這裡要指出的是,javascript 跳轉頁面有很多種實作方式,我這裡選擇的是最簡單的實作,不依賴于 jquery。

其中 <code>window.location.replace</code> 跳轉時,浏覽器曆史不記錄跳轉之前的那一條 url,而 <code>window.location.href</code> 會把跳轉前後的 url 都記錄在浏覽器中。

如果想要模拟點選連結的跳轉效果,使用 <code>window.location.href</code>,如果想要模拟 http 跳轉,使用 <code>window.location.replace</code>。

to check parent window is iframe or not

how can i make a redirect page?

繼續閱讀