使用JavaScript加载本地文件

时间:2019-02-07 22:59:46

标签: javascript onload

在这里进行搜索和阅读使我获得了解决方案的一部分,这是一种使用经常推荐的代码(例如:

)加载文本文件的解决方法
function FileRead(U) 
{
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        X=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        X=new ActiveXObject("Microsoft.XMLHTTP");
    }

  X.open('GET', U, false );
  X.setRequestHeader('Content-Type', 'text/html')
  X.send();
    return X.responseText;
}

到目前为止,这对我来说在PC上效果很好,但在Mac上却不行。

因此,我使用了此处推荐的一种技术,在该技术中,我将本地文件指定为脚本中的源,并且可以在多个页面上很好地工作。对于其他页面,我需要在运行时定义源,并从本地存储获取路径。同样,这里的技巧有所帮助,但我遇到了麻烦。标头中的以下代码可以使内容滚动。

<script>
    var albumPath = '';
    if (typeof(Storage) !== "undefined") 
    {
        albumPath = localStorage.getItem('photo_album_path');
    }
    if (albumPath.substr(albumPath-1,1) !== '/') {albumPath = albumPath +'/'}

    var Raw_Album_Info = '';
    var script = document.createElement('script');
    script.src = albumPath+"album_info.txt";
    document.head.appendChild(script);
</script> 

<script src="../scripts/common.js" type="text/javascript"></script>
<script src="../scripts/photos_pages.js" type="text/javascript"></script>

<script>alert(Raw_Album_Info);</script>

除非我添加最后的“警报”行,否则以上代码将不起作用。它显示一条空白消息,但它可以工作。如果我添加第二条警报语句,它将显示源文件的内容。

在页面底部,我有这个:

<script language="JavaScript" type="text/javascript">
window.onload = LoadAlbumInfo();
var slideIndex = 2;
showSlides();
</script>

LoadAlbumInfo解析文件并在页面上绘制内容。

很显然,这里有一个onload型的问题,但我不知道。有什么建议吗?

2月11日碰撞。仍在寻找解决方案。

我尝试了所有可以想到的事情,从setTimer到代码移动,再到第二个window.onLoad语句,唯一使之起作用的方法是在脚本之间的任意位置的代码中插入警报语句创建和使用脚本元素的时间。

如果我无法弄清楚这一点,我总是可以诉诸于将8-10个相同的html文件放在不同的文件夹中,但是这很难维护,而且不美观。

关于使用php等,该项目正在进行拇指驱动器。它是独立的。没有服务器,没有互联网。

0 个答案:

没有答案