jquery load()等效于脱机使用

时间:2012-04-28 09:52:28

标签: javascript jquery html

我正在寻找与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')
}

2 个答案:

答案 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的部分,该部分将显示在初始页面上。