我正在寻找与jquery的load()
方法等效的方法,它将脱机工作。我从jquery的文档中知道它只适用于服务器。我有一些文件,我需要在这些文件中调用在特定<div>
内找到的html。我只想把整个网站带到没有互联网连接的计算机上,让网站的那部分(load()
部分)功能就像它连接到互联网一样。感谢。
编辑:BTW,它不一定是js;它可以是任何可行的语言。
EDIT2: 我的示例代码(以防万一我遇到语法错误;这是针对同一目录中的文件):
function clickMe() {
var book = document.getElementById("book").value;
var chapter = document.getElementById("chapter").value;
var myFile = "'" + book + chapter + ".html'";
$('#text').load(myFile + '#source')
}
答案 0 :(得分:3)
你无法通过文件协议实现load(),没有其他的ajax请求可以用于html文件。我甚至尝试使用crossDomain和isLocale选项,但没有取得任何成功,即使准备协议也是如此。
问题在于即使jQuery正在尝试浏览器也会停止安全问题的请求(以及大多数浏览器,因为下面的代码片段在FF中工作)因为它允许您加载语言环境文件,因此您可以访问大量的的东西。
你可以在本地加载的一件事是javascript文件,但这可能意味着改变了很多应用程序/网站架构。
仅适用于FF
$.ajax({
url: 'test.html',
type: 'GET',
dataType: 'text',
isLocale: true,
success: function(data) {
document.body.innerHTML = data;
}
});
FF做得好的是,当其他文件没有时,它检测到请求本地文件的文件也在文件协议上。我不确定它是否对您可以请求的文件类型有限制。
答案 1 :(得分:0)
您仍然可以在此上下文中使用JQuery加载函数:
您可以在页面上添加OfflineContent div:
<div id="OfflineContent">
</div>
然后单击一个调用:
的按钮$('#OfflineContent').load('OfflinePage.html #contentToLoad');
按钮代码:
$("#btnLoadContent").click(function() {
$('#OfflineContent').load('OfflinePage.html #contentToLoad');
});
在OfflinePage.html中,您可能需要另一个名为contentToLoad的部分,该部分将显示在初始页面上。