简体   繁体   中英

Error on using alert in Javascript (Property 'alert' of object is not a function)

I am just trying to use alert and put a string variable inside the alert and get an error:

Uncaught TypeError: Property 'alert' of object [Object Window] is not a function

My code is:

var shortenurl = msg.d;
alert(shortenurl);

I've checked the value and it has a string inside, not an object.

Somewhere in your code you overrode alert . Check for var alert =... or some other kind of declaration like that. Also check for window.alert declarations.

I had that error message due to an alert() blocked by my pop-up-blocker.

I'm adding this one as an addition to this. In my case, when I had a similar problem, it turned out to not be my own code that was causing the problem but a poorly written extension that had been added to a client's browser. Once it was disabled, the script error went away.

If you haven't overridden the method name in your own code anywhere, you may want to try disabling extensions to see if any of those is inadvertently interfering with your script.

Check if you've got a Bootstrap.js declaration if required (after jQuery) ie

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>

Mozilla says,

The alert function is not actually a part of JavaScript itself.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript

You can not see a function called alert here: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects

Adding to Chris's answer... I had mistakenly overrode alert in my own function!

    //Don't do this:
    function alertOrConsole(node, alert){
        if(alert){
            alert(node);
        }else{
            console.log(node);
        }
    }

   //----------------------------
   //Fixed:
    function alertOrConsole(node, flag){
        if(flag){
            alert(node);
        }else{
            console.log(node);
        }
    }

One of the possible reasons could be that alert is used as variable - for example inside of function:

function MyFunction(v1,alert) { alert(v1); //will fail exactly with that message }

Solution is not to use predefined words as variables.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM