jquery load() 等效于离线使用

jquery load() equivalent for offline use

本文关键字:离线 load jquery 于离线      更新时间:2023-09-26

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

编辑:顺便说一句,它不一定是js;它可以是任何可以工作的语言。

编辑2:我的示例代码(以防万一我缺少语法错误;这是针对同一目录中的文件):

function clickMe() {
    var book = document.getElementById("book").value;
    var chapter = document.getElementById("chapter").value;
    var myFile = "'" + book + chapter + ".html'";
    $('#text').load(myFile + '#source')
}

您无法通过文件协议实现 load(),没有其他 ajax 请求适用于 html 文件。即使启用了跨域和 isLocale 选项,我也尝试过没有任何成功,即使预先设置了协议。

问题是,即使jQuery正在尝试,浏览器也会停止对安全问题的请求(大多数浏览器,因为下面的代码片段在FF中有效),因为它允许您加载语言环境文件,以便您可以访问很多东西。

您可以在本地加载的一件事是javascript文件,但这可能意味着更改许多应用程序/网站架构。

仅适用于 FF

$.ajax({
    url: 'test.html',
    type: 'GET',
    dataType: 'text',
    isLocale: true,
    success: function(data) {
        document.body.innerHTML  = data;
    }
});

FF做得好的地方是,它可以检测到请求本地文件的文件也在文件协议上,而其他人则没有。我不确定它是否对您可以请求的文件类型有限制。

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

您可以在页面上添加一个离线内容div:

<div id="OfflineContent">
</div>

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

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

按钮代码:

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

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