2015-10-14 48 views
0

a question询问如何获得<script src="...">的内容。答案是为此使用ajax。但是,当HTML文件不在Web服务器上托管时,这不起作用。是否有另一个选项可用于从Web服务器和本地文件系统访问的html文件?当html从本地文件系统运行时,如何获取<script src =“...”>的内容?

+0

否。出于明显的安全原因。 –

+1

@NiettheDarkAbsol这些显而易见的原因是什么? – sahbeewah

+0

@sahbeewah如果JavaScript能够读取文件系统上的任何给定文件,那么我可以用一个恶意链接下载整个硬盘。 –

回答

0

读取文件:

<base href="file:///C:/path/to/your/folder/"/> 

<script> 
window.onload = function(){ 
    var iframe = document.createElement('iframe'); 
    iframe.id = 'iframe'; 
    iframe.style.display = 'none'; 
    document.body.appendChild(iframe); 
    iframe.src = 'myJs.js'; 
    setTimeout(function(){ 
     var text = document.getElementById('iframe').contentDocument.body.firstChild.innerHTML; 
     alert(text); 
    }, 1000); 
} 
</script> 

,或者你可以

<script> 
function readfile() { 
    alert(document.getElementById('iframe').contentDocument.body.firstChild.innerHTML); 
} 
</script> 
<iframe id='iframe' src = 'test.txt' onload='readfile()'> </iframe> 

什么,只要附上一个onload事件的iframe调用函数读取文本文件的内容的做可能。

+0

已更新的答案。 –

+1

错误:“无法从”HTMLIFrameElement“中读取'contentDocument'属性:阻止源”null“的帧访问跨源帧。 (Google Chrome 45) –

相关问题