Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript bookmarklet中的jQuery.getScript()继续回调,但未成功执行插件_Javascript_Jquery_Jquery Plugins_Bookmarklet_Dom Manipulation - Fatal编程技术网

Javascript bookmarklet中的jQuery.getScript()继续回调,但未成功执行插件

Javascript bookmarklet中的jQuery.getScript()继续回调,但未成功执行插件,javascript,jquery,jquery-plugins,bookmarklet,dom-manipulation,Javascript,Jquery,Jquery Plugins,Bookmarklet,Dom Manipulation,我在创建一个工具时遇到了一个问题,该工具通过一个代码生成插件在页面上提供自定义覆盖,一旦用户单击外部站点上的bookmarklet,该插件就会从服务器上抓取 在bookmarklet内部调用$.getScript时,bookmarklet成功获取脚本并开始执行回调函数。一切都在工作,直到我开始访问插件本身,开始生成HTML。然而,一旦调用了plugin方法,我就无法从控制台接收任何信息,覆盖层也无法显示 插件结构(方法本身的源代码被省略,因为这是一个公司项目-不幸的是,我知道,但遗憾的是必要的)

我在创建一个工具时遇到了一个问题,该工具通过一个代码生成插件在页面上提供自定义覆盖,一旦用户单击外部站点上的bookmarklet,该插件就会从服务器上抓取

在bookmarklet内部调用
$.getScript
时,bookmarklet成功获取脚本并开始执行回调函数。一切都在工作,直到我开始访问插件本身,开始生成HTML。然而,一旦调用了plugin方法,我就无法从控制台接收任何信息,覆盖层也无法显示

插件结构(方法本身的源代码被省略,因为这是一个公司项目-不幸的是,我知道,但遗憾的是必要的)。:

以及我的相关bookmarklet内容:

$.getScript(<scriptURL>, function() {

    //generate data to send to server   

    //send unordered lists to server for processing
    $.ajax({
        requestType:'GET',
        url: <url>,
        dataType: 'jsonp',
        jsonp: 'callback',
        success: function(returnedData){
            //success param inside as data is required to proceed.
            $.each(returnedData.data, function(i, val){
                var htmlToAdd,
                content;

                console.log(val); //succeeeds, not null.

                htmlToAdd = $.generator('generateItem', val);

                console.log(htmlToAdd); //fails to reach log at this point

                //code to append to page
            });
        }
    });
});
$.getScript(,function(){
//生成要发送到服务器的数据
//将无序列表发送到服务器进行处理
$.ajax({
requestType:'GET',
网址:,
数据类型:“jsonp”,
jsonp:“回调”,
成功:函数(返回数据){
//success param INDER as data需要继续。
$.each(returnedData.data,function(i,val){
var htmlToAdd,
内容;
console.log(val);//成功,不为空。
htmlToAdd=$.generator('generateItem',val);
console.log(htmlToAdd);//此时无法访问日志
//要附加到页面的代码
});
}
});
});
所有这些方法都是基于$.CSS和$()、var.append()和var.HTML()函数生成HTML和CSS,并使用几个hide/remove函数在退出时将其清除

现在已经很晚了(发帖时接近晚上9:30),我正在失去注意力,所以我明天早上到达办公室时会仔细检查这些方法,我只是想澄清这种方法存在的任何缺陷,或者我在AJAX请求、getScript()的使用或插件结构中是否有任何明显的错误。如果我知道这可能是一个基于方法的问题,这将缩小我的搜索范围,并允许对某些函数进行潜在的重写

提前感谢,

克雷格·多姆维尔

我只是想澄清这种方法存在的任何缺陷,或者如果我在AJAX请求、getScript()的使用或插件结构中有任何明显的错误

我看你的基本方法没有错


需要考虑的一些事情:在使用
$.generator(…)
之前,添加
控制台.log($.generator)
,看看它是否返回您期望的函数代码。不要以为仅仅因为启动了getScript回调,脚本就被正确执行了。您似乎假设$==jQuery;也许这是一个安全的假设,也许不是。

在适当的地方用jQuery替换了$,以减少混淆(包括在插件中)。该插件似乎没有加载,因为console.log将其显示为“未定义”。谢谢你的到场。现在来找出它为什么不加载。
$.getScript(<scriptURL>, function() {

    //generate data to send to server   

    //send unordered lists to server for processing
    $.ajax({
        requestType:'GET',
        url: <url>,
        dataType: 'jsonp',
        jsonp: 'callback',
        success: function(returnedData){
            //success param inside as data is required to proceed.
            $.each(returnedData.data, function(i, val){
                var htmlToAdd,
                content;

                console.log(val); //succeeeds, not null.

                htmlToAdd = $.generator('generateItem', val);

                console.log(htmlToAdd); //fails to reach log at this point

                //code to append to page
            });
        }
    });
});