2016-09-21 34 views
1

我需要一个功能启用/禁用视口通过单击按钮。Javascript - 删除或设置另一个值到URL参数

所以我使用URL参数来添加&viewport=1就像我可以添加/删除meta name="viewport"并在此之后重新加载页面。

function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 
var $viewport = getParameterByName('viewport'), 
    $url = window.location.href; 
function checkViewport($btn){ 
    if($viewport === '1') { 
     $('head meta[name=viewport]').remove(); 
     // here I need to change or remove the param from URL 
     // tried with $url=$url.replace - not working :(
    } else if (typeof $viewport === 'undefined' || $viewport === null || $viewport === '') { 
     $('head').append('<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">'); 
     if ($url.indexOf('?') > -1){ 
      $url += '&viewport=1' 
     } else { 
      $url += '?viewport=1' 
     } 
    } 
    window.history.replaceState(null, null, $url); 
    if($btn){ 
     window.location.href = $url; 
    } 
} 

任何人都可以帮助我吗?

谢谢。

回答

1

这提供你想为我的结果:

var $url = "http://example.com?viewport=1"; 
console.log($url); //http://example.com?viewport=1 

$url = $url.replace(/[&?]viewport=1/g, ""); 
console.log($url); //http://example.com 
+0

不适合我的工作,是将视= 1&视= 1 – Adrian

+0

你得告诉我你在做什么。我测试它时,我的例子有效。 – Bayrock

+0

小提琴[链接](https://jsfiddle.net/templatetuners/vppnz3uq/) – Adrian