使用JavaScript和特定条件在href网址上添加参数

时间:2018-10-08 07:43:18

标签: javascript jquery

我的"require": { "magento/product-enterprise-edition": "2.2.5", "composer/composer": "@alpha", "yourvendor/sample-external-links": "dev-master", // your module should add here }, 函数有问题。我想在javascript URL中添加一些参数。例如,我想在单击href的URL中添加?param=1。但是在添加一些参数之前,我要检查href中的url是否为 http://example.com ,并且该参数不包含href。检查后,URL为 http://example.com 并且不包含?param=1,我想在该URL中添加?param=1。为什么要在添加参数之前先检查?这是因为我不想在任何URL中添加参数,而只是在我想要的特定URL中添加

这是我到目前为止所做的:

?param=1

但是,如果window.addEventListener("click", function(e) { var href = e.target.getAttribute("href"); if(href) { location.href = href + "?param=1"; e.preventDefault(); } });​ http://example.com ,我不知道如何检查并制定具体条件。请任何人知道如何做到这一点对我有帮助。谢谢你。

5 个答案:

答案 0 :(得分:0)

检查queryString并查看它是否具有param1值,如果没有,则附加它。

var url = new URL("http://www.example.com?param=1"); //window.location.href

if (url.searchParams.get('param'))
{
  console.log("Param exists");
}
else
{
   console.log("Param does not exist")
   url + "?param=1"
   console.log(url);
}

答案 1 :(得分:0)

window.addEventListener("click", function(e) {
 e.preventDefault();
    var href = e.target.getAttribute("href");
    console.log(href);
    if(href) {
        if(href.indexOf("param=1")==-1){
          href = href + "?param=1";
          console.log(href);
         // location.href = href;       
         }else{
          href = href + "?param=2";
          console.log(href);
         // location.href = href;
        }
     //   
       
    }
});
<a href="http:example.com?param=1">click</a>

在字符串或对象中开始搜索的索引。如果找不到搜索,它将返回-1。

答案 2 :(得分:0)

$(document).ready(function(){
   var href = "www.example.com?param=1";
    if(href.indexOf("www.example.com") >=0 && href.indexOf("param=1") >= 0) {
        alert('Url has given words');
        //location.href = href + "?param=1";
       // e.preventDefault();
    }


})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Check URL</div>

答案 3 :(得分:0)

签出:

window.addEventListener("click", function(e) {
    const href = e.target.getAttribute("href");
    if(href) {
        console.log(href.includes('?param=1')); 
        // You can do whatever you want based on this condition
        e.preventDefault();
    }
});
<a href='http://example.com/'>Link 1</a>
<br/><br/>
<a href='http://example.com/?param=1'>Link 2</a>

答案 4 :(得分:-1)

了解有关indexOf的信息,以检查查询字符串中是否存在值

var str="Hello world!"
document.write(str.indexOf("Hello") + "<br />")
document.write(str.indexOf("World") + "<br />")
document.write(str.indexOf("world"))

  • indexOf()方法区分大小写。
  • 如果未出现要检索的字符串值,则 方法返回-1