如果我打开 Chrome 开发人员工具控制台并更改HTMLMediaElement.prototype.play
,它就可以正常工作。
> HTMLMediaElement.prototype.play = function(){debugger;}
function (){debugger;}
> HTMLMediaElement.prototype.play
function (){debugger;}
但是,如果我从用户脚本更改它,该函数似乎总是恢复为本机实现。
> HTMLMediaElement.prototype.play
function play() { [native code] }
我已经验证了用户脚本是否正确加载,我什至尝试了一种丑陋的 setInterval 方法,看看至少它是否有效:
var myFunction = function(){debugger;};
window.setInterval(function(){
if (window.HTMLMediaElement.prototype.play != myFunction)
window.HTMLMediaElement.prototype.play = myFunction;
}, 900);
但即便如此,我最终还是会使用本机实现。