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);
しかし、これでも私は常にネイティブ実装に戻ってしまいます。