我是新來的JavaScript編程,所以請忍受我的基本問題:) 如果意外的開源javascript代碼之一修改本機window.scrollTo()方法,我怎麼能確保當調用scrollTo一個HTML元素,它會一直工作,而不是引發JS錯誤呢?如果我重寫window.scrollTo方法會發生什麼?
回答
只需刪除修改即可恢復缺省版本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對象,而不是當前實例。
有道理。儘管還有一個解決方案,但不知道這是否正確,但請讓我知道調用相同的潛在hazarads是什麼:''''Window.prototype.scrollTo.call(window,someParam);'''' – rishabh
謝謝,@rishabh,這也適用。不過,我用更簡單的解決方案更新了我的答案。 – nullability
- 1. 如果兩個ObjC類別重寫相同的方法會發生什麼?
- 2. 如果我不執行部分方法會發生什麼?
- 3. 如果我們直接調用run方法會發生什麼?
- 4. 如果我從AsyncTask調用一個方法會發生什麼?
- 5. 如果我自己調用run()方法會發生什麼?
- 6. 如果我在Servlet中編寫自己的方法,會發生什麼?
- 7. 在Java中重寫方法時會發生什麼?
- 8. 如果兩個IIS重定向到對方會發生什麼?
- 9. 如果我在XCODE中重命名文件會發生什麼?
- 10. 如果我在推後重新綁定會發生什麼?
- 11. 如果我在IE中重複CSS樣式會發生什麼?
- 12. Java:重載方法,方法(空)會發生什麼?
- 13. 如果基本方法在VB中調用重寫的方法會發生什麼?
- 14. 如果CImage :: Load方法失敗會發生什麼情況?
- 15. 爲什麼AbsoluteLayout方法會被重寫?
- 16. 如果派生類重寫方法,爲什麼調用基類方法?
- 17. 如果我們不在init方法中檢查「if(self)」會發生什麼?
- 18. 如果我提前關閉連接,web方法調用會發生什麼?
- 19. 如果action =「」會發生什麼?
- 20. 如果HttpClient.execute()中斷會發生什麼?
- 21. 在產生懶惰列表的方法中,如果我什麼都不返回會發生什麼?
- 22. 如果寫入localStorage被取消會發生什麼?
- 23. 如果寫入文件失敗,會發生什麼情況?
- 24. 如果我的IExceptionPublisher引發異常,會發生什麼情況?
- 25. android:如果Activity被殺,重啓後會發生什麼?
- 26. 如果我在撰寫服務期間評論StartStmand,會發生什麼?
- 27. Java:openGL:JOGL:當我調用display()方法時,幕後會發生什麼?
- 28. 當我們調用ArrayList.add()方法時會發生什麼?
- 29. 在.NET中發生了什麼事如果發生在釋放方法(〜法)
- 30. 如果發生異常,Laravel DB Transaction會發生什麼?
我認爲你應該先試一試 –
是的,我確實嘗試了一個JS錯誤。所以不知道我怎麼能始終確保默認窗口的方法應該總是被稱爲:) – rishabh