當然,頁面最好不要刷新,但是,拷貝一下浏覽器的鏈接,又希望是下次能定位到你播發的那個視頻。方法很簡單,改變一下 url 的 fragment 就可以了。
監聽fragment 的變化是這類編程的核心。在主流的浏覽器(IE firefox)裡面 都有一個 onhashchange 的事件監聽 fragment 的變化。
但是,他們的行為有些差異。在IE8 以前的 IE版本裡面,當 window.location 對象迅速變化的情況下,onhashchange 不會觸發,非常奇怪的bug。
下面我寫的 onhashchange 事件 沒有浏覽器的差異。並且加入了一個功能,頁面初始化的時候,如果 url 中 有 fragment ,也觸發一下
onhashchange 事件。
復制代碼 代碼如下:
function addFragmentChangeEvent(callback)
{
var source = document.URL;
var url = source.split("#")[0];
if (window.location.hash)
{
var base_hash = "#____base____hash____";//改變hash,使得頁面初始化的時候觸發一下事件函數。
window.location = url + base_hash;
}
var prevHash = window.location.hash;
window.setInterval(
function()
{
if (window.location.hash != prevHash)
{
prevHash = window.location.hash;
callback(prevHash);
}
}, 100);
if (window.location.hash)
{
window.location = source;
}
}
其實這個技巧是js 中間常用的技巧,模擬一個事件的作用。