JSFiddleでalert('something')
を実行すると、常にエラーが発生します。
「alert()」の呼び出しは無視されました。ドキュメントはサンドボックス化されており、「allow-modals」キーワードが設定されていません。
コンソールで。
Googleでこのエラーに関する情報を見つけることができません。
どうすれば修正できますか? 「allow-modals」キーワードとは何ですか?どこに設定できますか?
IFrameサンドボックスは、外部のコンテンツから保護して、メインWebサイトから表示されているように見える紛らわしいポップアップを作成するのに役立つ手法です。アラートポップアップを許可するには、iframeタグを検索し、サンドボックス属性を変更して、allow-modals値を含める必要があります。 JSFiddleの場合、これは「結果」という名前のiframeです。タグを変更した後、Fiddle)を再実行(Ctrl-Enter)する必要があります。
Webブラウザーの開発者ツールまたはGrease Monkey/Tamper Monkeyなどを使用して、iframeを変更します。
これから:
<iframe name="result" sandbox="allow-forms allow-popups allow-scripts allow-same-Origin" frameborder="0">
これに:
<iframe name="result" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-Origin" frameborder="0">
次のTamperMonkeyスニペットは、うまくトリックを行うようです:
// ==UserScript==
// @name Enable alert()s
// @match //jsfiddle.com/*
// @require http://code.jquery.com/jquery-latest.min.js
// @grant unsafeWindow
// ==/UserScript==
this.$ = this.jQuery = jQuery.noConflict(true);
$("iframe[name='result']").each(function() {
this.sandbox += ' allow-modals';
});
これはJSFiddleがiframe
属性を追加するためにsandbox
sに変更している必要があるものです。またはChromeはサポートを追加している必要がありますallow-modals
。
実際、これはChrome 46+にとって新しいものです。