使用Jquery.load()函数获取变量和页面片段

Get variable and page fragment using Jquery .load() function

本文关键字:变量 片段 获取 函数 Jquery load 使用      更新时间:2023-09-26

我目前正在使用Jquery的.load()函数异步插入页面片段。在我加载页面片段的URL中,我还设置了一个Javascript全局变量值(在script标记中)。

var loaded_variable = 'value1'

有没有一种方法可以使用.load()函数插入页面片段并检索loaded_variable的值,类似于以下代码:

    function loadProducts(url) {
                 $('#mainplace').load(url + ' #submain', function() { 
                       current_variable = loaded_variable;
                 });
    }

我知道当选择器表达式被附加到URL时会使用脚本块,所以如果.load()函数不起作用,我对其他可以实现这一点的Jquery函数持开放态度。

额外信息:我正在加载的URL是用HTML和Python(Web2py)编写的;使用相同的Python变量来呈现页面片段并设置CCD_ 2值。

如果您想从页面中获取片段并在其上执行脚本,则需要不同的方法。这有点古怪,但有效。

$.ajax({url: 'fetch_page.html', dataType: 'text'}).done(function(html) {
    var dom = $('<html />').prop('innerHTML', html);
    $('body').append(dom.find('body p'));
    $('head').append(dom.find('script'));
});

它从我们提取的页面中提取一个p标记,并将其插入父页面的body中。它还执行提取页面中的任何脚本。

如果你想知道prop('innerHTML...位,那是因为如果我使用jQuery的.html()方法,它会净化输入字符串,所以我们不会得到我们想要的结果。

我最初想到的是一个文档片段,但不能将HTML字符串插入到文档片段中——必须通过DOM方法进行附加。即使在这种情况下,它也不会像我一样简单地使用一个元素来解析dom(dom),从而真正提供任何节省。

正如我所说,有点粗鲁,但有效。

我想我也有类似的问题。我已经创建了一个页面,里面会有一个时事通讯注册。我想在我网站上的每一篇博客文章的底部加载这个页面。我不希望它出现在页脚中,因为它是我的博客页面特有的,我希望能够编辑它,而不必编辑每一篇博客文章。

我用url/博客时事通讯表单创建了这个页面,其中包括一些来自电子邮件CRM的代码。

然后我添加了一个div;博客时事通讯形式";类,并将以下内容放在页眉中,以加载我博客文章中第一页部分的内容。

$( document ).ready(function() {
    $('.blog-newsletter-form').load("/blog-newsletter-signup #page .page-section:nth-of-type(1) .content");
});

除了。。load函数是从时事通讯页面中剥离脚本,这是我的时事通讯表单工作所必需的。

如何加载页面片段,同时保留时事通讯的脚本。我尝试使用上面的示例代码,但无法使其工作。