Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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 编写jquery插件以在新窗口中打开链接_Javascript_Jquery_Html_Jquery Plugins_Window.open - Fatal编程技术网

Javascript 编写jquery插件以在新窗口中打开链接

Javascript 编写jquery插件以在新窗口中打开链接,javascript,jquery,html,jquery-plugins,window.open,Javascript,Jquery,Html,Jquery Plugins,Window.open,我写这个插件是为了打开新窗口的链接,但不起作用 知道哪里出了问题吗 (function( $ ) { $.fn.myPlugin = function() { var defaults = { width: 800, height: 700, scrollbars: 1, location: 1, status: 1 },

我写这个插件是为了打开新窗口的链接,但不起作用 知道哪里出了问题吗

(function( $ ) {
     $.fn.myPlugin = function() {
        var defaults = {
            width: 800,
            height: 700,
            scrollbars: 1,
            location: 1,
            status: 1       
        },
        self = this,
        opts = $.extend(defaults, options);
        this.filter('a').click(function() {
            $("a").attr("target","_self");
            window.open($(this).attr('href'),'title', opts);
            return this;
        });
    };

}( jQuery )); 
$('a').myPlugin();

我认为您缺少了extend函数中的options declatarion变量,第二个参数尚未定义

(function( $ ) {
     $.fn.myPlugin = function() {
        var defaults = {
            width: 800,
            height: 700,
            scrollbars: 1,
            location: 1,
            status: 1       
        },
        options,   //<-------- This one right here !
        self = this,
        opts = $.extend(defaults, options);
        this.filter('a').click(function() {
            $("a").attr("target","_self");
            window.open($(this).attr('href'),'title', opts);
            return this;
        });
    };

}( jQuery )); 
$('a').myPlugin();
祝您在代码的其余部分好运

狮子座。

取而代之的是这个

   opts = $.extend(defaults, options);
   this.filter('a').click(function() {
        $("a").attr("target","_self");
        window.open($(this).attr('href'),'title', opts);
        return this;
    });
尝试:

您可以找到使用window.open的示例。另见:

请记住,目标对象的第一个参数将被修改, 并且还将从$.extend返回。但是,如果你想 保留两个原始对象,可以通过传递 将空对象作为目标:

var object=$.extend{},object1,object2


希望这对您有所帮助。

新窗口还是新选项卡@我想他想在一个新窗口中打开链接,所以target=\u blank不能这样做。我想你最好在做任何事情之前阅读这篇文章。就在新窗口。是的,我想尝试同样的插件。如果为它编写一个函数,它就可以工作,但是如果我想将它作为插件来编写,它就不能工作。建议您对基本插件的创建做更多的研究解释这些差异以及它对OP的帮助。不要让人们去寻找这些差异。或者,解释没有被复制,我已经更新了答案,干杯。选项在$中使用时仍然未定义。实际上是,这就是它不显示新窗口的原因,请尝试代码;我不是OP。。。我指出选项是未定义的。这不是如何扩展插件选项
opts = $.extend({}, defaults, options);

$('a').click(function(){
   window.open($(this).attr('href'),'title', opts);
});