有哪些可能的跨浏览器(至少Firefox和Chrome)方法可以动态地重新加载被本地加载的html文件引用的本地Javascript文件?
背景:
本地html页面用于呈现由两个引用的Javascript文件格式化和显示的某些数据。一个文件包含Javascript代码,另一个文件包含JSON数据。
这个JSON数据是由另一个程序在磁盘上更新的,如果让UI自动合并这些更新,而无需手动重新加载页面(或打开一个新页面),那就太好了。
在Firefox中,我相信这个问题可以通过AJAX来加载html来解决,但是在Chrome中,由于同源策略的失败,这个问题不会起作用(不幸的是,我不一定依赖于--disable-web-security来缓解这个问题,因为所有之前的Chrome实例都必须关闭才能正常工作)。
我看到的唯一解决方案是运行本地web服务器,但我希望有更简单、侵入性更小的东西(也许是在IFrame中加载Javascript,然后重新加载IFrame,尽管我认为浏览器安全会阻止这一点)。
有人有什么建议吗?
发布于 2012-08-22 19:19:28
如果你的应用启动了Chrome,那么你可以在启动命令中包含--allow-file-access-from-files标志。
发布于 2013-07-19 00:44:30
我使用以下代码重新加载JavaScript和JSON文件。
/* 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文件与网站位于同一目录时的用法:
var jsonFile= "myData.json";
loadJsFile(jsonFile, dataIsLoaded);
我在IE10和Firefox22上测试成功,但在Chrome上不能工作。
https://stackoverflow.com/questions/12079631
复制相似问题