【问题标题】:Modifying an onclick URL parameter of a hyperlink with jQuery使用 jQuery 修改超链接的 onclick URL 参数
【发布时间】:2012-08-29 12:45:05
【问题描述】:

我在 SharePoint 页面上有一系列链接,我正在尝试修改其中一个常见的 URL 参数。所有链接看起来都与此类似:

<a href="javascript:" onclick="javascript:RefreshPageTo(event, '/dev/Pages/stPCT.aspx?Paged=TRUE&amp;p_ID=357\u0026PageFirstRow=31\u0026FilterField1=Number&amp;FilterValue1=0000123450&amp;&amp;\u0026View={FC071FA0-12AA-7854-905E-0C4429FFFD52}&amp;thisID=STRINGID');javascript:return false;" id="PagingLink" class="PagingLink"> Next</a>

我想要实现的是重写链接以将“thisID=STRINGID”更改为“thisID=0000123450”......到目前为止,我已经尝试(但没有成功)以下内容。

$(".PagingLink").each( function(index,element) {
    url = $(element).onclick();
    console.log(url);
    newurl = url.replace(/STRINGID/gi,"0000123450");
    $(element).attr('href', newurl);                                                               
});

我们将不胜感激。

【问题讨论】:

    标签: jquery sharepoint attributes onclick href


    【解决方案1】:

    我会这样做:

     $(".PagingLink").each( function(index,element) {
            url = $(element).attr('onclick');
            console.log(url);
            newurl = url.replace(/STRINGID/gi,"0000123450");
            $(element).attr('href',newurl);                                                               
        });
    

    您的错误在 .onclick 中,您应该使用 attr() 来获取它,因为它保证您获取正确的值。

    【讨论】:

    • 我刚刚尝试添加“url = $(element).attr('onclick');”它什么也没找到。
    • 你确定你是在创建 dom 之后在 $().ready(function(){}) 里面添加的吗?在所有 JS 代码之后添加它。也许在页面的页脚。
    【解决方案2】:

    您当前的 jQuery 代码可能会遇到 JavaScript 错误,因为没有名为 onclick() 的方法。您可以使用 attr() 方法访问 onclick 值,如下所示:

    url = $(element).attr('onclick');
    

    您的其余代码应该可以正确执行。

    【讨论】:

      【解决方案3】:

      您需要更改 onclick 属性中的文本,而不是 href 属性。看到这个小提琴:http://jsfiddle.net/fQEdV/2/

      更改 href 不会决定页面的去向,因为 Sharepoint 使用 javascript 在链接的点击事件中重定向用户。如果用户禁用了 javascript,那么您更新此 url 的脚本无论如何都不会为他们运行。

      【讨论】:

        【解决方案4】:
                $(".PagingLink").each( function(index,element) {
                url = $(element).onclick();
                console.log(url);
                newurl = url.replace(/STRINGID/gi,"0000123450");
                $(element).attr('href', newurl);                                                               
            });
        

        检查一下

                    $(".PagingLink").each( function(index,element) {
                    $(element).attr('href').replace(/STRINGID/gi,"0000123450");                                                              
            });
        

        .attr("value").replace('0', 'Day')

        【讨论】:

          猜你喜欢
          • 2011-12-23
          • 2011-01-10
          • 1970-01-01
          • 2016-09-24
          • 1970-01-01
          • 2013-12-26
          • 2020-11-30
          • 2012-10-16
          • 2010-12-28
          相关资源
          最近更新 更多