利用脚本动态改变链接的href,实现动态打开新页面

背景如下:为了根据业务动态打开新的窗口页面,使用window.open又会被一些浏览器拦截,所以通过脚本调用service,然后动态改变a标签的href,实现打开新页面。

HTML中的链接:

<a id="test" <%=_url != "" ? "target='_blank' onclick='setFinish(" + _id+ ",\"" + _url + "\");' href='javascript:'" : "href='javascript:' onclick='doTest(" + _id + ")'"%> title="点击开始测试!" class="test_content">

 

动态改变a标签的href:(值得注意的是ajax的调用是同步的,因为异步会出现这样的情况:ajax请求发出后,当结果还没返回时,会打开一个空页面,因为此时href还没有改变。再次点击链接后,才会打开真正想要的页面)

    function setFinish(id, url) {
        $.ajax({
            async: false,
            type: "POST",
            dataType: "json",
            url: "/xxx/Service.asmx/SetFinish",
            contentType: "application/json;charset=utf-8",
            data: $.toJSON({ id: id}),
            success: function () {
                $("#test").attr("href", url);
            }
        });
    }

 

posted @ 2012-05-07 23:04  永动机  阅读(2204)  评论(0)    收藏  举报