3

ReferenceError: documentGetElementsByName 未定义 MoveSiteTitle();

ReferenceError:未定义 MoveSiteTitle

移动站点标题();

任何帮助....!

4

3 回答 3

5

好吧,这似乎是 df1 报告的与 Chrome 相关的问题。但是,如果您愿意,有一种解决方案可以消除脚本错误。

将此代码放在母版页中 s4-workspace 标记或类似标记上方:

if(typeof documentGetElementsByName==='undefined')
{
    documentGetElementsByName = function(value){
        if($('[name="'+value+'"]'))
        {
            return $('[name="'+value+'"]');
        }
        return null;
    };
}

if(typeof MoveSiteTitle==='undefined')
{
    // Well.... Don't know what this function is supposed to do                           
    // but this way I am avoiding script error...
    MoveSiteTitle = function(value){
        return "";
    };
}
于 2013-11-04T18:49:29.457 回答
0

这只是 javascript 基本错误。这里 documentGetElementsByName(这里的变量名是什么) 检查这个变量名并搜索在当前页面中找不到任何位置。修改变量名或在那里放置一些条件。

于 2012-10-22T14:21:53.637 回答
0

问题是您的配置中的某些内容导致包含方法 MoveSiteTitle() 的脚本无法加载。

我能够从我的开发工具控制台获取方法“MoveSiteTitle”的源代码。您可以更改母版页以在<head>母版页部分中包含以下 JavaScript。

if (typeof MoveSiteTitle === 'undefined') {         
        function MoveSiteTitle() {
            a:;
            var b = documentGetElementsByName("titlewpTitleArea");
            if (b == null || b[0] == null) return;
            var a = b[0],
                c = documentGetElementsByName("onetidProjectPropertyTitle");
            if (c == null || c[0] == null) return;
            var e = c[0],
                d = document.getElementById("onetidPageTitleSeparator");
            if (d == null) return;
            if (Boolean(a.insertAdjacentElement)) {
                a.insertAdjacentElement("afterBegin", d);
                a.insertAdjacentElement("afterBegin", e)
            } else {
                a.insertBefore(d, a.firstChild);
                a.insertBefore(e, a.firstChild)
            }
        }
    }

此外,我在配置单元(配置单元 15)内的以下文件中找到了 MoveSiteTitle 方法(适用于 Sharepoint 2013)。

V:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\IE55UP.js

您也许可以从那里调试您的特定配置。

此外,GetElementsByName 的脚本是...

function GetElementsByName(b) {
    var a = document.getElementsByName(b);
    if (a.length == 0 && Boolean(window.XMLHttpRequest)) a = FFGetElementsById(document, b);
    return a
}
于 2016-01-08T01:15:39.467 回答