2013-10-25 66 views
0

我是新來的JavaScript編程,所以請忍受我的基本問題:) 如果意外的開源javascript代碼之一修改本機window.scrollTo()方法,我怎麼能確保當調用scrollTo一個HTML元素,它會一直工作,而不是引發JS錯誤呢?如果我重寫window.scrollTo方法會發生什麼?

+2

我認爲你應該先試一試 –

+0

是的,我確實嘗試了一個JS錯誤。所以不知道我怎麼能始終確保默認窗口的方法應該總是被稱爲:) – rishabh

回答

1

只需刪除修改即可恢復缺省版本scrollTo

delete window.scrollTo; 

這將刪除修改window.scrollTo並與Window對象原型函數的默認版本來替換它。

但是,如果您需要window.scrollTo的修改版本,您可以複製它並使用該副本。

執行下面的代碼之前,您加載庫:

window.scrollToProper = window.scrollTo; 

從此你可以調用scrollToProper()使用默認的功能,即使window.scrollTo被修改。

或者,您可以直接從Window原型調用默認的scrollTo函數。 (感謝RISHABH)的語法如下:

Window.prototype.scrollTo.call(window, x, y); 

注意窗口的資本,因爲你指的是Window對象,而不是當前實例。

+0

有道理。儘管還有一個解決方案,但不知道這是否正確,但請讓我知道調用相同的潛在hazarads是什麼:''''Window.prototype.scrollTo.call(window,someParam);'''' – rishabh

+0

謝謝,@rishabh,這也適用。不過,我用更簡單的解決方案更新了我的答案。 – nullability

相關問題