You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SharePoint中jQuery脚本引发编辑页面持续重定向问题求助

解决SharePoint中jQuery脚本误重定向编辑页面的问题

嘿,我来帮你搞定这个头疼的问题~你现在的核心困扰是写的脚本总是把你从编辑页面直接重定向走,没法正常编辑,而且还没实现“点击按钮跳页面A→页面A加载完跳页面B”的需求对吧?咱们一步步来解决:

先搞清楚为啥编辑页面会被重定向

大概率是你的脚本没有区分SharePoint的编辑状态和正常浏览状态——SharePoint页面在编辑模式下,页面里的脚本默认也会执行,所以你一进入编辑页面,脚本就触发了重定向,把你给“赶”走了。另外也可能是你的跳转逻辑没绑定到按钮点击,反而页面一加载就自动跑起来了。

针对性的解决方案

1. 给脚本加个“编辑状态判断开关”

先写个函数判断当前页面是不是在编辑模式,只有非编辑状态下才执行跳转逻辑:

// 判断是否处于SharePoint编辑模式
function isInEditMode() {
    // 几种判断方式,覆盖不同场景
    return document.querySelector('#ms-dlgOverlay, .ms-edit-mode') !== null || 
           window.location.href.indexOf('?Mode=Edit') > -1;
}

2. 正确绑定按钮的点击跳转逻辑

给你的按钮加个唯一ID(比如redirectBtn),然后用$(document).ready()包裹逻辑,确保页面加载完再绑定事件,而且只在非编辑状态生效:

$(document).ready(function() {
    // 只有不在编辑模式时,才绑定按钮事件
    if (!isInEditMode()) {
        $('#redirectBtn').on('click', function(e) {
            e.preventDefault(); // 如果是带默认跳转的按钮,先阻止默认行为
            // 点击按钮后跳转到页面A
            window.location.href = '你要跳转的页面A的完整URL';
        });
    }
});

3. 页面A的自动跳转逻辑

在页面A里单独加一段脚本,实现加载完成后自动跳转到页面B:

$(document).ready(function() {
    // 可以加个短延迟,确保页面完全加载(可选,根据需求调整时间)
    setTimeout(function() {
        window.location.href = '最终要跳转的页面B的完整URL';
    }, 500); // 延迟500毫秒,不想等就改成0
});

额外注意点

  • 如果你之前的脚本没加$(document).ready(),很可能页面还没加载完就执行了,导致找不到按钮或者意外触发重定向,一定要加上!
  • 如果是SharePoint原生的按钮,没法直接加ID的话,可以用按钮的文本或者类名来选择,比如$('input[value="你的按钮文本"]')。

这样修改后,你在编辑页面时脚本会自动“休眠”,不会乱跳;点击按钮才会走页面A→页面B的流程,完美实现你的需求~

内容的提问来源于stack exchange,提问作者Kevin H.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:18:30