javascript - 关于更改 url 或加载 url 的 Jquery 问题

标签 javascript jquery html css

使用下面的脚本,我试图通过单击 anchor 标记在浏览器中加载变量“url”的输出,同时执行它会在警告框中显示预期的结果路径,但它会加载 anchor 中提到的路径标签。我想在浏览器的同一选项卡中加载输出路径。请帮我解决这个问题。

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script>
    $(document).ready(function(){   
        $("a").on('click', function(){
            var reqURL = window.location.href;
            var hrefVal = $(this).attr('href');
            var url;        
            if(hrefVal.indexOf("http")== -1){
                if(reqURL.indexOf("/ca-en") != -1){
                    url="http://www.mywebsite.com/site2"+hrefVal;
                }else if(reqURL.indexOf("/ca-fr")> -1){
                    url="http://www.mywebsite.com/site3"+hrefVal;
                }else{
                    url="http://www.mywebsite.com"+hrefVal;     
                }
                alert(url);
                window.open(url,"_self");
            }       
        });
    });
    </script>
</head>

<body>
    <ul>
    <li>
        <a class="category" href="/home.html">home<span class="icon plus"></span></a>
        <ul class="submenu">
            <li><a href="/home/abc.html">abc</a></li>
            <li><a href="/home/xyz.html">xyz</a></li>
            <li><a href="/home/tam.html">tam</a></li>
        </ul>
    </li>
    </ul>
</body>
</html>

最佳答案

在执行您的自定义行为逻辑之前,必须停止 anchor 标记的默认行为。你的代码可以这样写:

<script>
$(function(){   
    $("a").on('click', function(e){
        e.preventDefault();
        var reqURL = window.location.href;
        var hrefVal = $(this).attr('href');
        var url;        
        if(hrefVal.indexOf("http")== -1){
            if(reqURL.indexOf("/ca-en") != -1){
                url="http://www.mywebsite.com/site2"+hrefVal;
            }else if(reqURL.indexOf("/ca-fr")> -1){
                url="http://www.mywebsite.com/site3"+hrefVal;
            }else{
                url="http://www.mywebsite.com"+hrefVal;     
            }
            alert(url);
            window.open(url,"_self");
        }       
    });
});
</script>

关于javascript - 关于更改 url 或加载 url 的 Jquery 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45756865/

相关文章:

JavaScript:如何在删除后在 'resize' 事件上添加类?

javascript - jQuery ReplaceWith 无法正常工作。所以迷失了

javascript - Cheerio 将标签值 <h1> 替换为 <h2> 并保留 insideText

javascript - 将过滤器搜索与分页集成

javascript - 动态创建的 HTML5 元素上的过渡。如何在 Javascript 中定义?

javascript - Vue - 从索引中提取多个组件

javascript - Jquery 根本不工作,但其他 Javascript 代码运行

javascript - 通过 data-id 查找元素并获取左侧样式

java - 无法在 Selenium WebDriver 的段落标记中使用 sendKeys() 方法

html - 如何在 Windows 10 移动版上禁用浏览器自动完成/Web 表单输入建议?