打开新窗口并允许&标志/数字

时间:2012-03-11 01:59:50

标签: jquery

目标:当用户输入输入框中的任何内容时,它将打开一个新窗口并向其附加& yuri = 0。

当前代码:

    $(function() {
    $('.baseUrl').click( function() {
    window.location = $(this).attr('href')  +  $('.appendUrl').val() + '&yuri=0'; 

    return false;


   });
   });

HTML:

 <input type="text" class="appendUrl" /><br>
 <a href="http://" class="baseUrl">Click Here</a>


现在它在同一个窗口打开,&amp;和= 0没有正确显示 任何见解都会很棒。

3 个答案:

答案 0 :(得分:2)

如果您想要一个新窗口,请尝试window.open() method而不是设置window.location

$(function() {
    $('.baseUrl').click(function() {
        window.open($(this).attr('href') + $('.appendUrl').val() + '?yuri=0', 'newwinnamehere');

        return false;    
    });
});​

(真的很简化)演示:http://jsfiddle.net/qzfsK/1

另请注意,您要在末尾添加的位应以?而不是&开头 - 除非用户已输入? - 所以您真的应该拥有if测试以检查:

var url = $('.appendUrl').val();
window.open($(this).attr('href') + url + (url.indexOf('?') != -1 ? '&' : '?') + 'yuri=0', "newwinname");

答案 1 :(得分:0)

请改用以下内容:

window.open(URL);

答案 2 :(得分:0)

它似乎在jsfiddle中正常工作: http://jsfiddle.net/gcskm/

看起来您正在运行的错误是“&amp;”。 &安培;仅适用于在第一个之后添加到URL的值。对于你想要的第一个“?”。所以你需要检测是否已经存在至少一个变量。如果是这样,请使用“&amp;”否则使用“?”。