Whenever running alert('something')
in JSFiddle, I get the error:
Ignored call to 'alert()'. The document is sandboxed, and the 'allow-modals' keyword is not set.
in the console.
I cannot find any information on this error through Google.
How do I fix this? What is, and where can I set, the 'allow-modals' keyword?
IFrame sandboxing is a technique that helps protect from outside content creating confusing popups that would appear to come from the main website. To allow alert popups you will need to find the iframe tag, and modify the sandbox attribute to contain the allow-modals value. For JSFiddle this is the iframe named "result". You will need to Re-Run (ctrl-enter) your Fiddle after modifying the tag.
Using web browser Developer Tools or something like Grease Monkey/Tamper Monkey change the iframe.
From this:
<iframe name="result" sandbox="allow-forms allow-popups allow-scripts allow-same-origin" frameborder="0">
To this:
<iframe name="result" sandbox="allow-modals allow-forms allow-popups allow-scripts allow-same-origin" frameborder="0">
The following TamperMonkey snippet seems to do the trick nicely:
// ==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';
});
That is something JSFiddle must have changed to its iframe
s to add the sandbox
attribute. Or Chrome must have added support allow-modals
.
Actually it is something new for Chrome 46+:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With