首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >动态重新加载本地Javascript源/ json数据

动态重新加载本地Javascript源/ json数据
EN

Stack Overflow用户
提问于 2012-08-23 02:56:12
回答 2查看 6.1K关注 0票数 3

有哪些可能的跨浏览器(至少Firefox和Chrome)方法可以动态地重新加载被本地加载的html文件引用的本地Javascript文件?

背景:

本地html页面用于呈现由两个引用的Javascript文件格式化和显示的某些数据。一个文件包含Javascript代码,另一个文件包含JSON数据。

这个JSON数据是由另一个程序在磁盘上更新的,如果让UI自动合并这些更新,而无需手动重新加载页面(或打开一个新页面),那就太好了。

在Firefox中,我相信这个问题可以通过AJAX来加载html来解决,但是在Chrome中,由于同源策略的失败,这个问题不会起作用(不幸的是,我不一定依赖于--disable-web-security来缓解这个问题,因为所有之前的Chrome实例都必须关闭才能正常工作)。

我看到的唯一解决方案是运行本地web服务器,但我希望有更简单、侵入性更小的东西(也许是在IFrame中加载Javascript,然后重新加载IFrame,尽管我认为浏览器安全会阻止这一点)。

有人有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-23 03:19:28

如果你的应用启动了Chrome,那么你可以在启动命令中包含--allow-file-access-from-files标志。

票数 2
EN

Stack Overflow用户

发布于 2013-07-19 08:44:30

我使用以下代码重新加载JavaScript和JSON文件。

代码语言:javascript
代码运行次数:0
运行
复制
/* Load a JavaScript or JSON file to use its data */    
function loadJsFile(filename, dataIsLoaded){
    var fileref = document.createElement('script');
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src", filename);
    fileref.onload = dataIsLoaded;

    if (typeof fileref!="undefined"){
        document.getElementsByTagName("head")[0].appendChild(fileref);
    }  
}

/* The callback that is invoked when the file is loaded */
function dataIsLoaded(){
    console.log("Your data is ready to use");
}

当JSON文件与网站位于同一目录时的用法:

代码语言:javascript
代码运行次数:0
运行
复制
var jsonFile= "myData.json";
loadJsFile(jsonFile, dataIsLoaded);

我在IE10和Firefox22上测试成功,但在Chrome上不能工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12079631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档