alert()やconfirm()を回避する
alert()で出てきたOKボタンとかキャンセルボタンってjavascriptで取得できるんですかね…?yosider.icon JSからクリックしたい
僕も昨日それ思ってたdnin.icon
ブラウザ固有の物なので無理ではkuuote.icon
おそらくできないし、てきたらもはや警告windowの意味をなさないtakker.icon
ユーザへ警告を出さずに、ありとあらゆる危険な操作を勝手にできてしまうことになる
/icons/たしかに.iconyosider.icon
開発者コンソールでalert()やconfirm()を上書きすると回避できるというworkaround code:js
const originalConfirm = window.confirm;
window.confirm = (nope) => { return true; }
ん?てことはこれを使えばScrapboxページの自動削除が可能に……?
2021-02-02 13:26:23 自動削除できた。/icons/こわい.icontakker.iconyuki_minoh.icon
邪悪なハックだ。。。yuki_minoh.icon
なんでこんな地雷言語がweb programmingの第一線で使われ続けているんだ
よくわからないけどconstみたいに上書きできないようにはなってないんだろうか?yosider.icon JavaScriptの仕様としてwindowオブジェクトがGlobal Scopeという物があって、オブジェクトの中身は普通書き換え可能なので(つらい)
/icons2/へえ〜.icon
Object.freezeを適用したら凍結はできるけど、多分やるとグローバルスコープを書き換える前提になっているものが軒並み死ぬ
windowを凍らせたら変数とか関数とか何も登録できなくなりそうyuki_minoh.icon
これが原因やなyuki_minoh.icon
https://gyazo.com/0e1a1951b9e326dc4cf8fab8f4076300
デフォルトが「編集可能」「書き込み可能」になっている
Object.defineProperty(window, "confirm", {value: _confirm, writable:false, configurable:false})で見た目ロックしたみたいにはできますね
https://gyazo.com/cdafe2c65897945dfd861153acdd3f67
confirmを常にtrue出すように上書きしてもconfirmダイアログが(ちゃんと表示されて)falseを返す
事前にvar _confirm = window.confirmをやってます
ただ、この後Object.definePropertyをもう一回実行されると突破されますね笑
対抗するにはObjectへの参照を吹き飛ばす他ない