0

我有一个如下的“锚标记”,它是动态生成的(所以我无法控制内容)。我添加了“id”属性,实际标签不包含 id 标签,它只是为了演示目的,所以我可以使用 jsfiddle 来测试任何 Javascript。

<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”,第二个实例必须被替换带有一个空字符串 ''

我已经成功地更新了文本,我在使用新更改的标签更新 a 标签时遇到了问题。基本上我如何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“锚标签”的事件?

4

2 回答 2

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>
于 2013-02-22T06:23:56.273 回答
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">
于 2013-02-22T06:52:13.173 回答