Чтобы сохранить оригинальный метод фильтра Array #, вы просто сохраняете его в переменной, а затем используете его при необходимости, используя call()
:
//Saving the original method
var ArrayFilter = Array.prototype.filter;
//Then whenever needing to use it, call it by using call()
var someArray = [1,2,3];
var filteredArray = ArrayFilter.call(someArray,function(){ /* your filter callback */ });
Теперь вам нужно сделатьэтот запуск перед сценарием, который создает модифицированный метод filter()
.Вы должны будете сделать это, изменив, в какой момент ваш контент-скрипт загружается, чтобы он мог загрузить другой код.Это можно сделать, установив run_at в манифесте:
манифест:
"content_scripts": [
{
"matches": ["http://*.example.com/*"],
"run_at": "document_start",
"js": ["contentScript.js"]
}
],
contentScript.js
//injecting the script into the page
//or however you are currently doing it
var yourScript = document.createElement('script');
document.head.appendChild(yourScript);
yourScript.textContent = "/* your js code */";