views:

798

answers:

1

I have an external javascript on my page, e.g. something like:

<script src="http://foo.com/script.js" type="text/javascript"></script>

and an UpdatePanel somewhere. The script writes some content, and does this from within an anonymous javascript function in the js file. I.e., there is something like this in the script:

(function(){document.write('content');})();

Whenever the UpdatePanel is updated through asynchronous postback, everything the script did (or any javascript on my page, for that matter) is made undone. For normal javascript, I would just use:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myFunction)

to redo all that, but since the function in the script source file is anonymous and called upon definition, I'm SOL! Any ideas?

Note: the external js source is from another domain and its content is out of my control.

A: 

Ok, the "solution" ("dirty ugly hack", if you prefer) I came up with:

Instead of loading the js file directly, I load it via a wrapper that reads the file, wraps the result in custom javascript that puts the anonymous function in a global array, and call all functions in said array upon load and after each asynchronous postback.

Please don't enter this solutions in any beauty pageants.

Protector one