2012-03-26 116 views
0

Iam从Tapestry 5.0.18升级到5.1.0.5我的应用程序,我得到以下JavaScript错误。我知道5.1.0.5中的部分ajax响应的WaitForPage()有一个修复。但我仍然不断gettin java脚本错误。以下是我的代码。升级到Tapestry5.1 Javascript错误

 <table t:id="itemPanel" t:type="CustomSlidingPanel" closed="true" subject="literal:itemes" blockId="literal:itemPanel_content" linkToDisplay="New item" actionLink="newitem" zoneOnAction="itemZone"/> 
     <div id="itemPanel_content" style="display: none;"> 
      <table t:id="itemGrid" t:type="customGrid" source="item" row="itemRow" clientId="literal:itemGrid" rowId="itemRow.itemId" add="edit" include="type, item, price,store,startDate, endDate, ynprimary" inplace="true"> 
       <t:parameter name="editCell"> 
        <t:actionlink t:id="editItem" t:zone="itemZone" t:context="itemRow.id">Edit</t:actionlink> 
       </t:parameter> 
      </table> 
     </div> 
     <t:zone t:id="itemZone" visible="false"> 
      <t:delegate to="itemBlock" /> 
     </t:zone> 
     <t:block t:id="itemBlock"> 
      <div id="newitemDiv" class="dataEntry"/> 
      <div id="itemDivParent"> 
       <div id="itemDiv" class="dataEntry"> 
        <t:form t:id="itemForm" name="itemForm"> 
         <t:if test="itemObject.id"> 
          <script type="text/javascript">insertDivElement('itemGrid${itemObject.id}','itemDivParent','itemDiv','newitemDiv','8');</script> 
         </t:if> 
         <t:if test="newitem"> 
          <script type="text/javascript">createNewDivElement('itemDivParent','itemDiv','newitemDiv');</script> 
         </t:if> 
         <table t:id="itemComponent" t:type="item" itemObject="itemObject"/> 
         <div style="width: 50%" align="center"> 
          <input t:id="saveitem" t:type="Submit" class="button" value="Save" />&nbsp; <input type="button" class="button" value="Cancel" onClick="hideDivs('itemDivParent','itemDiv','newitemDiv');" />&nbsp; <t:if test="itemImported" negate="true"> 
           <input t:id="deleteitem" t:type="SubmitContext" class="button" value="Delete" t:context="itemObject.id" /> &nbsp;</t:if> 
         </div> 
         <br /> 
        </t:form> 
       </div> 
      </div> 
     </t:block> 

这是我得到的错误信息。看起来像在Tapestry.js中的“Tapestry.waitForPage(event)”有问题。有人可以帮忙吗?

Message: Object doesn't support this property or method 
Line: 197 
Char: 1 
Code: 0 
URI: http://localhost:8080/ItemEntry?itemId=131686 
<a id="editItemPrice" onclick="javascript:Tapestry.waitForPage(event);" href="itementry.edititemprice/6578">Edit</a> 
+0

也许这只是一个浏览器缓存问题。在升级Tapestry之后,我曾经遇到过那些导致问题的旧脚本。清除缓存后,它工作。 – luukes 2012-03-27 08:05:44

回答

0

我相信这可能是涉及到combine scripts settingdiscussed on the mailing list。设置-Dtapestry.combine的脚本= false作为一个VM参数或添加到您的AppModule:

public static void contributeApplicationDefaults(final MappedConfiguration<String, String> configuration) { 
    configuration.add(SymbolConstants.COMBINE_SCRIPTS, "false"); 
} 

你有没有升级到5.3,虽然理由吗?它有5.1的改进。

+0

感谢您的回复。我们正在通过版本升级版本。我在哪里设置Dtapestry.combine-scripts = false? – sreenaji 2012-03-27 15:09:41

+0

将它设置为VM参数,以-Dtapestry.combine-scripts = false的形式启动您的应用程序,或者将其添加到您的appmodule中,就像我在修改的答案中显示的一样。 – joostschouten 2012-03-27 15:19:55

+0

已添加到appmodule中,但它不起作用。我也清除了浏览器缓存并且没有用。任何其他帮助将不胜感激。 – sreenaji 2012-03-27 16:11:00