void HTMLScript::Update(WEBC_PFBYTE o, WEBC_PFBYTE data) { #if (WEBC_SUPPORT_JSCRIPT) HTMLDocument *pDoc = GetDocument(); WebcJSDocumentContext *jsMgr = (pDoc)? pDoc->GetJSMgr() : 0; if (mpScript || !jsMgr) { return; } WEBC_NEW_VERBOSE(mpScript, WebcJSScript(jsMgr, jsMgr->GetGlobalObject()),"WebcJSDocumentContext"); if (mpScript) { if (Src()) { LoadScript *pJob; if (pDoc) { HTMLBrowser *pBrowser = pDoc->GetBrowser(); if (pBrowser) { WebcCharset charset = (mCharset == WEBC_CHARSET_UNKNOWN)? pDoc->GetCharset() : mCharset; WEBC_NEW_VERBOSE(pJob, LoadScript(this, pDoc, charset),"LoadScript"); if (pJob) { pBrowser->ProcessLoadJob(pJob, pJob->GetURL(), pDoc->BaseURL(), pDoc, WEBC_TRUE /* urgent */); } webc_free_string_copy(mpSrc, __FILE__, __LINE__); mpSrc = 0; } } } else // compile the contents of this tag as the script to execute { HTMLElement *pChild = mpFirstChild; WEBC_CHAR* pStr; long iLen; for (; pChild != WEBC_NULL; pChild = pChild->mpNext) { if (pChild->Type() == HTML_STRING_ELEMENT) { pStr = ((HTMLString*)(pChild))->GetString(); iLen = webc_strlen(pStr); if (mpScript->Write(pStr, iLen) < iLen) { mpScript->Destroy(); mpScript = 0; break; } } } if (mpScript) { mpScript->Compile(); } DeleteChildren(); } } #endif }