使用TinyMCE对Word(1611)对话框进行最新更新会导致错误12003:无效的URL语法。
根据Use the Dialog API,原因是
该对话框指向带有HTTP协议的URL。需要HTTPS。
简单的例子是将下面的代码放在一个对话框中(奇怪的是它在一个面板中工作)。
更新了代码
<!DOCTYPE html>
<html>
<head>
<title>Office.js with TinyMCE</title>
<meta charset="utf-8" />
<script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://cdn.tinymce.com/4/tinymce.min.js"></script>
<script type="text/javascript">
(function () {
"use strict";
// The initialize function must be run each time a new page is loaded.
Office.initialize = function (reason) {
$(document).ready(function () {
tinymce.init({ selector: 'textarea' });
});
};
})();
</script>
</head>
<body>
<textarea></textarea>
</body>
</html>
Edit1:这只是Windows上的一个问题。在Mac上它工作正常。
编辑2:打开对话框的代码
var url = 'https://' + location.host + '/dialog.html';
console.log('url: ' + url); // url: https://localhost:44341/dialog.html
Office.context.ui.displayDialogAsync(url, { height: 30, width: 20 });
答案 0 :(得分:1)
12003通常表示您的对话框网址上没有https。调用displayDialogAsync时,更有可能引发此问题,您在第一个参数中传递HTTP URL。
对于使用TinyMCE的html页面,我可以复制粘贴整个html并在Office对话框中打开它。因此它不太可能与tinyMCE有关。
(您可以分享打开对话框的代码,这将非常有用。)
最好的问候
答案 1 :(得分:0)
我们已经确定了这个问题。事实证明我们阻止了 javascript: URL协议,这似乎是在使用TinyMCE时调用的。我们正在努力修复。