Monday, August 3, 2009

exeute javascript expilictly in response

We were lucky enough to get this script, which is the most powerful script which can be used to execute the java script tags in the div tags in case of Ajax supersedes them. we used that for Cobol-CGI project

You can get response and execute script in that through this script

/*
Purpose : This function is used to execute the java script code which reside inside div tag because java script inside div tag doesn't executed.
*/
function executeTEmbeddedScripts(node,theResponse)
{
/// Damco //if(document.getElementById('contentdiv').document.getElementById("pageNavPosition")){
if(document.getElementById("pageNavPosition")){
/// Damco //node = document.getElementById('contentdiv').document.getElementById("pageNavPosition");
node = document.getElementById("pageNavPosition");
var bSaf = (myBindexOf(navigator.userAgent,'Safari',0) != -1);
var bOpera = (myBindexOf(navigator.userAgent,'Opera',0) != -1);
var bMoz = (navigator.appName == 'Netscape');
if (!node) return;
var myHead=document.getElementsByTagName('head');
if ((!bSaf)&&(!bOpera)&&(!bMoz)) node.innerHTML="  "+theResponse; // World's most retarded IE fix
var st = node.getElementsByTagName('script');
var strExec;
var scripts = st.length;
var i = 0;
for(j = 0; j < scripts; j++){
var scriptsAtStart = st.length;
if (bSaf) {strExec = st[i].innerHTML; st[i].innerHTML = "";}
else if (bOpera) {strExec = st[i].text; st[i].text = "";}
else if (bMoz) {strExec = st[i].textContent; st[i].textContent = "";}
else {strExec = st[i].text; st[i].text = "";}
try {
var myScript = document.createElement("script");
myHead.item(0).appendChild(myScript);
myScript.type = "text/javascript";
myScript.text=strExec;
var html = node.innerHTML;
// jscript would prematurely eject if it encountered the full closing tag, even encapsulated in a string object
var endScriptL = '<' + '/script>';
var endScriptU = '<' + '/script>';
var pos2 = myBindexOf(html,strExec,0);
var pos = myBindexOf(html,endScriptL,pos2) >= 0 ? myBindexOf(html,endScriptL,pos2) : myBindexOf(html,endScriptU,pos2);
pos += String(endScriptL).length;
html = html.substr(0,pos) + html.substr(pos);
node.innerHTML = html;
if(scriptsAtStart==st.length) i++;
} catch(e) {
alert("Script execution error: "+e);
}
}
}
}


Parameters :

node : Pass the id of the Div or Span in which script needs to be executed
theResponse : Pass the response that you are writing in the Div or Span



if anyone need help, pls contact me
and if it wrks for you do add you comments .

No comments: