Is "remove" a reserved keyword in Google Chrome?
google-chrome, javascript, reserved-words
Solution
Elements in Chrome have a `.remove()` method which allows for self-removal of an element instead of having to do it from the parent.
The trouble is that when using attribute handlers, you get a different scope chain. That scope chain includes the element itself, as well as the `document`. This means that all properties of the element and `document` show up as variables.
Because you named your function `remove()`, and because it's a global function/variable, it is being shadowed by the `.remove` property (now variable) on the element itself. This can be seen with an alert. If you change your handler to:
onclick="alert(remove)"
...you'll get something like:
function remove() { [native code] }
So it's not that it's reserved, but rather that it's used as a property which ends up shadowing the global.
To fix it, either use the global directly:
onclick="window.remove()"
Or change the function name.
Problem
I have an interesting problem, and I think I got to the root of it, but I wanted to be sure. I have a link that calls a function called remove(). All browsers except Chrome had no issues with the function. However, the link that is clicked disappeared in Chrome, even when I simplified the function as in the example below. I have seen this question: Can't use "download" as a function name in javascript. In the links, however, I did not see anything about "remove" as a reserved keyword. My question is this, I am correct about this being a keyword? If so, is there anywhere I can find a list of Google keywords? I have searched and have not found this to be a problem anywhere else. ``` <a href="javascript:void(0)" onclick="remove()">Remove</a> ``` Javascript: ``` function remove(){ alert("Hi"); } ```