【背景】
折腾:
期间,使用代码:
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
【解决过程】
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中无法打开该页面:
IE中无法显示编辑器:
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加载html的话,没什么太好办法。
尤其是用了XMLHttpRequest,会出现:
NS_ERROR_DOM_BAD_URI: Access to restricted URI denied
的报错。
后来的后来,是通过另外的js中的FileReader去解决的。
详见:
转载请注明:在路上 » 【未解决】js中用XMLHttpRequest加载html出错:NS_ERROR_DOM_BAD_URI: Access to restricted URI denied