Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
Jquery 由于target="_“空白”;不';不能验证吗?_Jquery - Fatal编程技术网

Jquery 由于target="_“空白”;不';不能验证吗?

Jquery 由于target="_“空白”;不';不能验证吗?,jquery,Jquery,我正在使用jQuery,希望在新窗口中打开某些链接 但是,我希望将其作为有效的XHTML1.1传递。此外,我认为这是一种行为,应该在正确的层中,即JavaScript 有可用的jQuery插件吗?我已经创建了一个快速的jQuery插件 (function($){ $.fn.newWindow = function(options) { var defaults = { titleText: 'Link opens in a new window'

我正在使用jQuery,希望在新窗口中打开某些链接

但是,我希望将其作为有效的XHTML1.1传递。此外,我认为这是一种行为,应该在正确的层中,即JavaScript


有可用的jQuery插件吗?

我已经创建了一个快速的jQuery插件

 (function($){  
  $.fn.newWindow = function(options) {       
    var defaults = {
        titleText: 'Link opens in a new window'     
    };

    var options = $.extend(defaults, options);

     return this.each(function() {  
       var obj = $(this);

       if (options.titleText) {        
           if (obj.attr('title')) {
                     var newTitle = obj.attr('title') + ' (' 
                                                + options.titleText + ')';
           } else {
                    var newTitle = options.titleText;
           };              
           obj.attr('title', newTitle);            
       };          

       obj.click(function(event) {
          event.preventDefault();  
          var newBlankWindow = window.open(obj.attr('href'), '_blank');
          newBlankWindow.focus();
        });     
       });    
  };  
 })(jQuery); 
示例用法

$('a[rel=external]').newWindow();
您还可以通过传入一些JSON选项来更改或删除标题文本

更改标题文本的示例:

$('a[rel=external]').newWindow( { titleText: 'This is a new window link!' } );
示例一起删除它

$('a[rel=external]').newWindow( { titleText: '' } );

这是我的第一个jQuery插件,所以任何反馈都会非常好。

等等,您要验证哪个XHTML版本

“target”属性是有效的XHTML1.0属性。它仅在版本1.1中无效

您的问题可能是您在页面顶部声明了错误的版本吗

更新

嗯,我对你的应用程序了解不多,但是如果你真的需要UI,这取决于前一个窗口没有被替换,那么也许你应该考虑一个模态弹出窗口。
链接实际上意味着你要去别的地方。如果你需要呆在原地,那么为什么不找到另一种方式,比如一个模式窗口,或者一个优雅地向后倾斜的隐藏/显示面板,用于进一步的UI?

在我的例子中,所有以http://或ftp://开头的链接都是外部链接:

$('a[href^="http"],a[href^="ftp"],').bind('click', function(event){
    open(this.href);
    return false;
});

或者根据您的需要更改选择器。

您可以使用jquery.url.js

它非常容易使用,如下所示

$.jqURL.loc("URL",{w:800,h:450,t:150,l:180,wintype:'_blank'});

“Valid”or not target=“\u blank”是在新窗口中打开链接的实际方式。它简短易读,每个读过它的人都能立即知道它应该做什么。我认为rel=“external”也比较流行。是有人来解释他们的反对票,还是我们只是在猜测?@Robert-我的想法正是如此。似乎有人决定否决这个问题和每个答案,除了一个。@alex:很酷,我怀疑你是这个意思,但不确定。不幸的是,我被迫做客户/老板想做的事。需要一个新窗口。@alex:哈哈,是的,还是老故事,我完全理解为什么在某些情况下密码不会被散列的原因。老板说:“如果我们可以通过电子邮件向用户发送他们的密码,那不是很方便吗?”这看起来像是我插件的基础+谢谢你给我一个答案!