【未解决】js中用XMLHttpRequest加载html出错:NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

【背景】

折腾:

【基本解决】js中如何加载html内容

期间,使用代码:

    function loadPage(href)
    {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", href, false);
        xmlhttp.send();
        return xmlhttp.responseText;
    }
       
    function editSavedGoodsContent()
    {
        var kindeditor = window.editor;
   
        // 加载之前已保存的页面的HTML内容
        savedHtmlHref = "previous_saved_page.html";
        <!-- html = kindeditor.html(savedHtmlHref); -->
        <!-- var loadedHtml = $("#easyui_editor").load(savedHtmlHref); -->
        loadedHtml = loadPage(savedHtmlHref);
        console.log(loadedHtml);
        kindeditor.html(loadedHtml);
    }

想要尝试去用XMLHttpRequest加载本地的html的内容的。

结果出错:

主线程中同步的 XMLHttpRequest 已不推荐使用,因其对终端用户的用户体验存在负面影响。更多帮助请见 http://xhr.spec.whatwg.org/ jquery.js line 339 > eval:5:0

NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

XMLHttpRequest  NS_ERROR_DOM_BAD_URI Access to restricted URI denied

【解决过程】

1.搜:

NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

参考:

javascript – i18n: NS_ERROR_DOM_BAD_URI: Access to restricted URI denied – Stack Overflow

jQuery – Access to restricted URI denied – Solution

还是没有简单方便的解决办法。

2.搜:

js load local html

参考:

javascript – Loading local html file into div – Stack Overflow

感觉:

这条路,从js中加载html的做法,很不好。

按理来说应该找到其他更好的办法才对。

3.参考:

How do I load an HTML page in a <div> using JavaScript? – Stack Overflow

试试:

document.getElementById("easyui_editor").innerHTML='<object type="text/html" data="previous_saved_page.html" ></object>';

结果没有任何反应:

对应的

    <form>
        <textarea name="easyui_editor" id="easyui_editor" class="easyui-kindeditor" style="width: 100%; height: 200px; ">在此输入新产品的介绍内容</textarea>
    </form>

中的textarea中的内容还是没变化。

4.参考:

javascript – jQuery .load is not loading a local html file inside a Cocoa WebView – Stack Overflow

试试:

    function editSavedGoodsContent()
    {
        var kindeditor = window.editor;
   
        // 加载之前已保存的页面的HTML内容
        savedHtmlHref = "previous_saved_page.html";
        jQuery.ajax({
             url: savedHtmlHref, dataType: "html"
        }).done(function( responseHtml ) {
            console.log(responseHtml);
             $("#easyui_editor").html(responseHtml);
        });
    }

结果:没效果。

另外,不知何何时:

Chrome中无法打开该页面:

chrome always loading page not show

IE中无法显示编辑器:

ie not how kindeditor

5.参考:

jQuery.get(url,[data],[callback],[type])

试试:

        $.get(savedHtmlHref, function(data){
          console.log("Data Loaded: " + data);
        });

但还是都不行。

6.参考:

jQuery.get() | jQuery API Documentation

试了:

    function editSavedGoodsContent() 
    {
        console.log("into editSavedGoodsContent");
   
        var kindeditor = window.editor;
   
    /*
        // 加载之前已保存的页面的HTML内容
        var savedHtmlHref = "previous_saved_page.html";
        html = kindeditor.html(savedHtmlHref);
        var loadedHtml = $("#easyui_editor").load(savedHtmlHref);
        loadedHtml = loadPage(savedHtmlHref);
        document.getElementById("easyui_editor").innerHTML='<object type="text/html" data="previous_saved_page.html" ></object>';
        kindeditor.sync();
        console.log(loadedHtml);
        kindeditor.html(loadedHtml);
    */
        var savedHtmlHref = "previous_saved_page.html";
        var loadedHtml = $.get(savedHtmlHref, function(data){
          console.log("Data Loaded: " + data.toSource());
        });
        console.log("loadedHtml=" + loadedHtml);
       
        //$("#mainFrame").load(savedHtmlHref);
        //console.log("mainFrame Loaded");
    }

还是不行:

js print object still not work

 

【总结】

至此,对于js加载html的话,没什么太好办法。

尤其是用了XMLHttpRequest,会出现:

NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

的报错。

 

后来的后来,是通过另外的js中的FileReader去解决的。

详见:

【基本解决】KindEditor中加载已有html页面内容



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量