我只是想证明在我的 SharePoint 托管的应用程序页面中显示模式对话框的概念。我相信我已经包含了所需的 js 库,并且在执行我的函数之前,我给了它足够的时间来加载这些库。我收到的错误是:
无法读取未定义 的属性“hiddenButtonValueBeforeDialog”
我相信我有我需要的图书馆::
<script type="text/javascript" src="/_layouts/15/init.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.runtime.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.js"></script>
<script type="text/javascript" src="/_layouts/15/SP.UserProfiles.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.core.js"></script>
<script type="text/javascript" src="/_layouts/15/sp.ui.dialog.js"></script>
Javascript:
function showDialog() {
var optDict = {
width: 800,
height: 500,
url: 'http://www.google.com',
title: "Upload your file"
};
try {
SP.UI.ModalDialog.showModalDialog(optDict);
}
catch (err) {
alert(err.message);
}
return false;
}
最佳答案
出现Cannot read property 'hiddenButtonValueBeforeDialog' of undefined
错误是因为sp.ui.dialog.js是全局化的JavaScript库,客户端还没有加载所需的资源文件SP.Res.resx
(SP.Res.hiddenButtonValueBeforeDialog
就是从这个文件生成的)。
解决方案
ScriptResx
HTTP Handler 用于加载资源的内容客户端上的文件,必须添加以下行:
<script type="text/javascript" src="/_layouts/15/ScriptResx.ashx?name=sp.res&culture=en-us"></script>
SP.UI.UIUtility
的依赖sp.ui.dialog.js
库中的命名空间,sp.init.js
JavaScript必须引用库:
<script type="text/javascript" src="/_layouts/15/sp.init.js"></script>
关于sharepoint - SP2013 SharePoint 托管的应用程序模态对话框错误 : Cannot read 'hiddenButtonValueBeforeDialog' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24457967/