【问题标题】:Sharepoint 2007 placeholder issueSharepoint 2007 占位符问题
【发布时间】:2009-11-06 16:36:56
【问题描述】:

我在 jQuery 中为一些额外的 javascript 创建了一个简单的 placeHolder - 问题是 placeHolder 在一些脚本标签内,因此 Sharepoint 设计器无法识别。

该页面工作正常,所以直到现在它还没有打扰我,因为如果不解决问题,您将无法触摸设计视图的任何部分。

我的代码在主模板中看起来像这样:

<script type="text/javascript>
  $(document).ready(function(){ 
    <asp:ContentPlaceHolder id="PlaceHolderjQuery" runat="server" />
  });
</script>

有没有办法让它正常工作,以便 Sharepoint Designer 真正识别占位符?

感谢您的帮助!

【问题讨论】:

  • 我不清楚为什么 需要在 JQuery 表达式或 javascript 标记中

标签: sharepoint sharepoint-2007 sharepoint-designer


【解决方案1】:

我了解到您正在尝试调用在 PlaceHolder 中定义的 JavaScript 函数。 但是您的代码将无法工作,因为 PlaceHolder 是一个服务器控件,并且将其作为其他标签的子元素推送将无法正常工作。脚本标签是客户端处理标签。所以我建议改变逻辑如下。

在母版页中,我将有一个 JavaScript 来默认调用一个函数。

<script type="text/javascript>
  $(document).ready(function(){ 
       myOnLoadFunction();
  });
</script>

我将使用虚拟函数定义内容占位符

<asp:ContentPlaceHolder id="PlaceHolderjQuery" runat="server">
 <script type="text/javascript>function myOnLoadFunction(){ //do nothing }</script>
</asp:ContentPlaceHolder>

现在您可以在内容页面中定义

<asp:Content ID="javascript" ContentPlaceHolderID="PlaceHolderjQuery" runat="server">
 <script type="text/javascript>function myOnLoadFunction(){ alert('Hello jQuery');   }</script>
</asp:Content>

【讨论】:

  • 是的,我以前就是这样 - 我更喜欢另一种方式,因为它在某种程度上可以让外观更干净。该模板仍然有效,只是共享点设计器拒绝在脚本标记中间看到有效的 PlaceHolderjQuery 标记。感谢您抽出宝贵时间提出替代解决方案。
  • @TeckniX 我明白你在说什么
  • 我会将此标记为答案 - 以防万一人们检查代码,您在函数 myOnLoadFunction() 周围缺少一些 标记再次感谢!跨度>
猜你喜欢
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多