For example, in the remote webpage, there is a snippet of code like this:
<script>
function foo(){
this.bar = 0;
}
In my greasemonkey script, I want to create an object of this class:
var _foo= unsafeWindow['foo'];
new _foo();
Then I got an Illegal Value error.
Here's how to do it:
var _foo = eval('(' + unsafeWindow.foo.toSource() + ')');
var x = new _foo();
This workaround may be required due to the different security zones or sandboxing that Greasemonkey does, though I'm not entirely sure.
来源:https://stackoverflow.com/questions/535959/how-can-i-create-an-object-of-a-class-which-is-defined-in-the-remote-page