Hey all, we're having some issues with the prototype library over here
at MySpace.  We have OpenSocial apps that live on our profile/home
pages in an iframe that are built by third parties.  Those apps are
allowed to use prototype.js.  An IE bug is causing browsers to crash
when prototype is loaded into those iframes.  When the browser window
is closed before the iframe's DOM has finished loading the browser
goes into an infinite loop launching new browser windows/tabs until
all memory is exhausted.

Here's a test page, first is my outer page (outer.html):
<body><iframe src="inner.html#test"></iframe></body>

And this is inner.html:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
<!--script type="text/javascript">var a = document.createTextNode

If you open up outer.html in IIS (doesn't seem to work locally for
some reason, maybe the DOM loads too quickly) and immediately close it
the browser blows up.  You may need to try it a couple times to get it
to fire off.

It also happens when the commented line is switched in inner.html, the
cause is the document.createTextNode call found here:

Object.extend(String.prototype.escapeHTML, {
  div:  document.createElement('div'),
  text: document.createTextNode('')

This was introduced in 1.5.1.  The real cause seems to be calling
div.innerHTML before the DOM has loaded, as I tried to rewrite
createTextNode using innerHTML and found the same issue.

So, can you guys revert back to the 1.5.0 version of escapeHTML that
doesn't create the text node on DOM load?  Right now we're looking at
banning prototype, which we'd obviously rather not have to do.

Thanks and let me know if you need more info!
You received this message because you are subscribed to the Google Groups 
"Prototype: Core" group.
To post to this group, send email to prototype-core@googlegroups.com
To unsubscribe from this group, send email to 
For more options, visit this group at 

Reply via email to