![](/img/trans.png)
[英]Overriding a .class generated from a third party JS snippet to display: none; in a Gatsby JS site
[英]Overriding third party JS
我們使用第三方控件套件,它有一個我們想要定制的JQuery全局ajaxError
事件。 我們不想更新這個JS文件,但希望以某種方式覆蓋它,以便JQuery不執行此事件。
這可能嗎?
編輯:第三方代碼
ajaxError: function (element, eventName, xhr, status) {
var prevented = this.trigger(element, eventName,
{
XMLHttpRequest: xhr,
textStatus: status
});
if (!prevented) {
if (status == 'error' && xhr.status != '0')
alert('Error! The requested URL returned ' + xhr.status + ' - ' + xhr.statusText);
if (status == 'timeout')
alert('Error! Server timeout.');
}
}
我想從if條件開始使行無效
您可以覆蓋整個方法,但不能只覆蓋一個語句。
編輯 :
我猜你正在使用的庫是使用原型構建的。
剛剛注意到你正在使用jQuery。 因此,您可以使用jQuery.fn而不是LibName.prototype。 覆蓋它看起來類似於:
jQuery.fn.ajaxError = function(element, eventName, xhr, status) {
var prevented = this.trigger(element, eventName,
{
XMLHttpRequest: xhr,
textStatus: status
});
}
您可以覆蓋任何屬性,如下所示:
var thirdParty = {
override: function() {
alert('this function should have been overridden');
}
};
var thirdPartyOriginal = thirdParty.override;
thirdParty.override = function() {
alert('this function has been overridden');
};
thirdParty.override();
thirdParty.override = thirdPartyOriginal;
該示例顯示保留原始文件,然后執行新代碼。 我把它恢復到原始狀態。
public class MyClass: MC
{
protected override void OnError(..)
{
//handle error, send error to where ever
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.