使用本地硬盘

时间:2015-08-03 16:37:39

标签: javascript

当我点击链接时,我想将sub-page.htm加载到index.htm的div中。

我的所有文件都位于我的本地硬盘上:C:\ MyPage \ ...

我不想使用iframe,我需要在...之间使用sub-page.htm的内容...并将其放入index.htm中的div中。

我尝试使用javascript加载iframe,然后再次使用javascript我提取iframe内容,我确实把它放入div。但是javascript会引发安全性错误。我发现在互联网上它应该工作,如果文件位于相同的域,端口和协议。它应该可以在Web服务器上运行,但不能在我从硬盘启动页面时使用。

是否可以从没有安全错误的硬盘运行它?

2 个答案:

答案 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);
};