与TinyMCE对话会导致错误12003

时间:2016-12-15 12:50:28

标签: ms-word tinymce-4 office-js

使用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 });

2 个答案:

答案 0 :(得分:1)

12003通常表示您的对话框网址上没有https。调用displayDialogAsync时,更有可能引发此问题,您在第一个参数中传递HTTP URL。

对于使用TinyMCE的html页面,我可以复制粘贴整个html并在Office对话框中打开它。因此它不太可能与tinyMCE有关。

(您可以分享打开对话框的代码,这将非常有用。)

最好的问候

答案 1 :(得分:0)

我们已经确定了这个问题。事实证明我们阻止了 javascript: URL协议,这似乎是在使用TinyMCE时调用的。我们正在努力修复。