当我点击链接时,我想将sub-page.htm加载到index.htm的div中。
我的所有文件都位于我的本地硬盘上:C:\ MyPage \ ...
我不想使用iframe,我需要在...之间使用sub-page.htm的内容...并将其放入index.htm中的div中。
我尝试使用javascript加载iframe,然后再次使用javascript我提取iframe内容,我确实把它放入div。但是javascript会引发安全性错误。我发现在互联网上它应该工作,如果文件位于相同的域,端口和协议。它应该可以在Web服务器上运行,但不能在我从硬盘启动页面时使用。
是否可以从没有安全错误的硬盘运行它?
答案 0 :(得分:2)
不,出于安全原因,浏览器对JS可以从本地硬盘驱动器访问的内容施加限制。
您必须运行本地http服务器才能正确访问iframe中的数据。
答案 1 :(得分:0)
以下是有关如何执行此操作的示例代码。如果此代码不起作用,则表示您在读取目录时遇到权限错误,并且需要打开该目录的权限并将权限级联。
PS 我还有代码来呈现html,iframe和pdfs。
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<ul>
<li class="ui-widget-content2" onclick="render_view('image','http://cdn2.bigcommerce.com/server5500/9dbca/products/307/images/521/CM920PPeterGriffinLicense__48340.1410919117.1280.1280.jpg?c=2');">Render Image</li>
<li class="ui-widget-content2" onclick="render_view('image','/some directory to an image here!');">Render Image</li>
</ul>
<div class="change_me" id="change_me"></div>
JS
function render_view(type, data){
switch (type){
case 'image':
$('#change_me').html('<h3>Rendered Image</h3><img src="' +data+ '" ></img>').hide();
break;
case 'html':
$('#change_me').load(data).hide();
break;
case 'html_iframe':
$('#change_me').html('<h3>Rendered iFrame HTML</h3><iframe src="' + data + '" width="100%"; height="95%;";></iframe>').hide();
break;
case 'pdf':
$('#change_me').html('<h3>Rendered PDF</h3><embed src="'+ data+'" width="100%"; height="95%;";></embed>').hide();
break;
default :
alert('There was an error');
};
$('#change_me').fadeIn(1000);
};