2013-02-22 60 views
0

我有一個「錨標籤」,如下所示動態生成(所以我無法控制內容)。我已添加「id」屬性,實際的標籤不包含ID標籤,它僅僅是爲了示範的目的,所以我可以使用的jsfiddle測試任何JavaScript。如何更新使用JavaScript的onclick事件(確保它在IE 6+中工作

<a title="719132 bytes" id="ah" onclick="DispEx(this, event, 'TRUE', 'FALSE', 'FALSE', 'SharePoint.OpenDocuments', '0', 'SharePoint.OpenDocuments', '', '1\u002fPMS\u002f_layouts\u002fWordViewer.aspx?id=\u002fPMS\u002my.docx', '', '67', '0', '0', '0x400000300c231061'); return false;" 
    href="/_layouts/download.aspx?SourceUrl=/documents/my.docx" 
    jQuery16206020211467509253="188"> 

因此,當有人點擊一個文件,有一個安全警告彈出,爲了抑制此警告標誌,「SharePoint的第一個實例必須用SharePoint.OpenDocuments.3替換」,第二個實例必須替換爲空字符串「'

我已經設法更新文本沒有問題,我有更新標籤與新的更改標籤的問題。基本上我如何使用文本更新onclick事件?

這是我迄今所做的(例子中可以訪問這裏:http://jsfiddle.net/yhUu6/2/

基本上我期待的結果看起來像這樣

<a title="719132 bytes" id="ah" onclick="DispEx(this, event, 'TRUE', 'FALSE', 'FALSE', 'SharePoint.OpenDocuments.3', '0', '', '', '1\u002fPMS\u002f_layouts\u002fWordViewer.aspx?id=\u002fPMS\u002my.docx', '', '67', '0', '0', '0x400000300c231061'); return false;" 
    href="/_layouts/download.aspx?SourceUrl=/documents/my.docx" 
    jQuery16206020211467509253="188"> 

如何更新onclick事件的「錨標籤」?

在此先感謝。

回答

0

你爲什麼選擇複雜的方式?它們只是一個函數的兩個參數。通過使用兩個變量像這個例子中的參數修改它們的值:

<input type='button' value="your anchor" onclick="YourFuntion(arg1,arg2);return false;"/> 
<input type='button' value='Try it' onclick='myfunction()'/> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
var arg1 = 'SharePoint.OpenDocuments', arg2='SharePoint.OpenDocuments'; 
function YourFuntion(a,b) 
{ 
alert(a); 
alert(b); 
} 
function myfunction() 
{ 
arg1 = 'SharePoint.OpenDocuments.3'; 
arg2 = " "; 
} 
//--> 
</SCRIPT> 
+0

感謝的話非常多的幫助。抱歉不提供完整的信息。錨標籤是動態生成的,我無法控制它。這是由SharePoint自動生成的,因此請記住,您將如何更改onclick事件。 – MicrosoftDevX 2013-02-23 10:50:48

0

這可能不是最優化的解決方案,但希望它可以顯示一個jQuery替代概念。您可以從定位標記中移除跟蹤/管理文本參數的複雜性,並將其轉換爲JQuery(javascript)。

在JQuery的Click事件:

<script language="JavaScript"> 
    $('#ah').bind('click', function() { 

     var sharePoint = $(this).attr('parm-data'); 
     var sharePointParm1 = ''; 
     var sharePointParm2 = ''; 

     if("SharePoint.OpenDocuments" == sharePoint) { 
      sharePointParm1 = 'SharePoint.OpenDocuments.3'; 
      $(this).attr('parm-data') = 'SharePoint.OpenDocuments.3'; 
     } else { 
      sharePointParm1 = 'SharePoint.OpenDocuments'; 
      sharePointParm2 = sharePointParm1; 
      $(this).attr('parm-data') = sharePointParm1; 
     } 

     DispEx(this, event, 'TRUE', 'FALSE', 'FALSE', sharePointParm1, '0', sharePointParm2, '', '1\u002fPMS\u002f_layouts\u002fWordViewer.aspx?id=\u002fPMS\u002my.docx', '', '67', '0', '0', '0x400000300c231061'); 
     return false;" 
    }); 
</script> 

然後改變的錨標記:

<a title="719132 bytes" id="ah" parm-data="SharePoint.OpenDocuments" 
     href="/_layouts/download.aspx?SourceUrl=/documents/my.docx" 
     jQuery16206020211467509253="188"> 
+0

非常感謝您的幫助。抱歉不提供完整的信息。錨標籤是動態生成的,我無法控制它。這是由SharePoint自動生成的,因此請記住,您將如何更改onclick事件。 – MicrosoftDevX 2013-02-23 10:50:19

+0

那麼,如果你的JQuery低於1.7,你可以使用[.live](http://api.jquery.com/live/)或者[.on](http://api.jquery.com/on/)爲1.7和更高。 這應該允許點擊事件觸發動態生成的鏈接。 – ddtpoison777 2013-02-25 07:40:49

相關問題