alert() not working in Chrome

后端 未结 5 2228
南旧
南旧 2020-12-05 20:05

\"error\"

\'nuff said. I have absolutely no clue why using alert() there wouldn\'t work. It works perfectly in

相关标签:
5条回答
  • I had the same issue recently on my test server. After searching for reasons this might be happening and testing the solutions I found here, I recalled that I had clicked the "Stop this page from creating pop-ups" option a few hours before when the script I was working on was wildly popping up alerts.

    The solution was as simple as closing the tab and opening a fresh one!

    0 讨论(0)
  • 2020-12-05 20:50

    Take a look at this thread: http://code.google.com/p/chromium/issues/detail?id=4158

    The problem is caused by javascript method "window.open(URL, windowName[, windowFeatures])". If the 3rd parameter windowFeatures is specified, then alert box doesn't work in the popup constrained window in Chrome, here is a simplified reduction:

    http://go/reductions/4158/test-home-constrained.html

    If the 3rd parameter windowFeatures is ignored, then alert box works in the popup in Chrome(the popup is actually opened as a new tab in Chrome), like this:

    http://go/reductions/4158/test-home-newtab.html

    it doesn't happen in IE7, Firefox3 or Safari3, it's a chrome specific issue.

    See also attachments for simplified reductions

    0 讨论(0)
  • 2020-12-05 21:05

    put this line at the end of the body. May be the DOM is not ready yet at the moment this line is read by compiler.

    <script type="text/javascript" src="script.js"></script>"
    
    0 讨论(0)
  • 2020-12-05 21:07
    window.alert = null;
    alert('test'); // fail
    delete window.alert; // true
    alert('test'); // win
    

    window is an instance of DOMWindow, and by setting something to window.alert, the correct implementation is being "shadowed", i.e. when accessing alert it is first looking for it on the window object. Usually this is not found, and it then goes up the prototype chain to find the native implementation. However, when manually adding the alert property to window it finds it straight away and does not need to go up the prototype chain. Using delete window.alert you can remove the window own property and again expose the prototype implementation of alert. This may help explain:

    window.hasOwnProperty('alert'); // false
    window.alert = null;
    window.hasOwnProperty('alert'); // true
    delete window.alert;
    window.hasOwnProperty('alert'); // false
    
    0 讨论(0)
  • 2020-12-05 21:08

    Here is a snippet that does not need ajQuery and will enable alerts in a disabled iframe (like on codepen)

    for (var i = 0; i < document.getElementsByTagName('iframe').length; i++) {
        document.getElementsByTagName('iframe')[i].setAttribute('sandbox','allow-modals');
    }
    

    Here is a codepen demo working with an alert() after this fix as well: http://codepen.io/nicholasabrams/pen/vNpoBr?editors=001

    0 讨论(0)
提交回复
热议问题