1

我正在寻找与 jquery 的load()方法等效的脱机工作方法。我从 jquery 的文档中知道它只适用于服务器。我有一些文件,我需要从中调用<div>在这些文件中的特定内容中找到的 html。我只是想把整个站点放在没有互联网连接的计算机上,并让站点的那部分(该load()部分)像连接到互联网一样运行。谢谢。

编辑:顺便说一句,它不一定是 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')
}
4

2 回答 2

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 做得好的是它检测到请求本地文件的文件也在文件协议上,而其他文件没有。我不确定它是否对您可以请求的文件类型有限制。

于 2012-04-28T10:27:06.977 回答
0

您仍然可以在此上下文中使用 JQuery 加载函数:

您可以在页面上添加一个 OfflineContent div:

<div id="OfflineContent">

</div>

然后单击一个按钮,该按钮调用:

$('#OfflineContent').load('OfflinePage.html #contentToLoad');

按钮代码:

$("#btnLoadContent").click(function() {
   $('#OfflineContent').load('OfflinePage.html #contentToLoad');
});

在 OfflinePage.html 中,您可能必须有另一个名为 contentToLoad 的部分,它将显示在初始页面上。

于 2012-04-28T09:57:06.007 回答