Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-1228

core.js doesn't process embedded <script></script> elements in ajax fragments

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.1.1
    • 4.1.2
    • Framework
    • None

    Description

      I have a widget that returns an html fragment that contains a script block. The core.js machinery that handles the DojoAjaxResponseBuilder output doesn't execute the script in the script block.

      Here's the ajax response (note the conspicuous alert dialog that should pop up):

      <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
      <!ENTITY nbsp ' '>
      ]>
      <ajax-response><response id="formhidden" type="element"><div style="display:none;" id="formhidden"><input type="hidden" name="formids" value="Hidden,LinkSubmit,LinkSubmit_0,title,url,If,tagAutoCompleter,description,tagEventLoop,tagEventKeywordLoop,tagEventKeywordLoop_0" />

      <input type="hidden" name="component" value="form" />
      <input type="hidden" name="page" value="bumpq:BumpletPage" />
      <input type="hidden" name="service" value="direct" />
      <input type="hidden" name="session" value="T" />
      <input type="hidden" name="submitmode" value="" />
      <input type="hidden" name="submitname" value="" />
      <input type="hidden" name="Hidden" id="Hidden" value="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" />
      <input type="hidden" name="If" value="F" />
      <input type="hidden" name="tagEventLoop" value="P1" />
      <input type="hidden" name="tagEventLoop" value="P1" />
      </div></response><response id="redirectDiv" type="element">

      <div id="redirectDiv">
      <div><a id="redirectLink" style="display:none" href="http://localhost:8080/app?page=ShellPage&service=external&sp=Sbump&sp=Sjkassis&sp=Soptions&sp=Sb41de90d-f32a-1029-aa2e-6dd1cf998f03">redirect link</a>
      <script>
      //<![CDATA[
      alert('hi');
      try {
      // If we can get read the host property of the location, it's our site!"
      var openerHost = self.opener.location.host;
      var redirectUrl = dojo.byId('redirectLink').href;
      var slashX1 = redirectUrl.indexOf('/');
      var slashX2 = redirectUrl.indexOf('/', slashX1 + 2);
      var redirectHost = redirectUrl.substring(slashX1 + 2, slashX2);
      if (openerHost == redirectHost)

      { self.opener.location = dojo.byId('redirectLink').href; }

      }
      catch (e) { }
      window.close();
      //]]>
      </script>
      </div>
      </div></response><response id="initializationscript" type="script"><script>
      //<![CDATA[
      dojo.require("tapestry.form");tapestry.form.focusField('title');
      //]]>
      </script></response><response id="statusDiv" type="element"><div id="statusDiv">

      1168564586250<label for="title">Title</label> <input type="text" name="title" value="Quest for Zero Point Energy Engineering Principles for Free Energy" id="title" tabindex="1" maxlength="100" size="50" /></div></response></ajax-response>

      Attachments

        Activity

          People

            jkuhnert Jesse Kuhnert
            jkassis Jeremy F. Kassis
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: