我正在使用jQuery,并希望在新窗口中打开某些链接。
但是,我想传递有效的XHTML 1.1。另外,我相信这是一个行为,它应该在正确的层中,即JavaScript。
任何可用的jQuery插件?
答案 0 :(得分:1)
我把一个快速的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插件,所以任何反馈都会很棒。
答案 1 :(得分:1)
以http://或ftp://开头的所有链接都是我的情况下的外部:
$('a[href^="http"],a[href^="ftp"],').bind('click', function(event){
open(this.href);
return false;
});
或为您的目的更改选择器。
答案 2 :(得分:0)
坚持,您正在验证哪个XHTML版本?
“target”属性是有效的XHTML 1.0属性。它仅在版本1.1中无效。
您的问题可能是您在页面顶部声明了错误的版本吗?
<强>更新强>
嗯......嗯,我对你的应用程序了解不多,但如果你真的需要UI,这取决于之前的窗口没有被替换,那么也许你应该考虑一个模态弹出窗口。链接真的意味着,你要去别的地方。如果您需要保持原状,那么为什么不找到另一种方式,例如模态窗口或隐藏/显示面板,这些方式会优雅地退回,以进一步用户界面?
答案 3 :(得分:0)
您可以使用 jquery.url.js
它非常易于使用,如下所示。
$.jqURL.loc("URL",{w:800,h:450,t:150,l:180,wintype:'_blank'});