首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >window.open被标记为弹出

window.open被标记为弹出
EN

Stack Overflow用户
提问于 2017-06-06 04:24:00
回答 2查看 83关注 0票数 0

在使用window.open时,我正试图找出如何绕过pop阻塞问题。这是我正在处理的代码。

我构建的第一个脚本使用bit.ly API缩短URL地址。基本上,它获取参数,然后将其传递给API。

然后,第二个脚本调用get_short_url函数,以便通过twitter使用on-click事件共享bit.ly url。不幸的是,浏览器似乎将window.open标记为弹出。有没有办法绕过这个

代码语言:javascript
运行
复制
<script>
var base_url      = window.location.origin,
    hash_bang     = "/#/sign-up?referral=",
    login         = "login",
    api_key       = "api_key";


function get_short_url(login, api_key, func, value) {
    var value = document.getElementById('input-refcode').value;

    $.getJSON(
        "https://api-ssl.bitly.com//v3/shorten?callback=?", 
        { 
            "format": "json",
            "apiKey": api_key,
            "login": login,
            "longUrl": base_url + hash_bang + value
        },

        function(response)
        {
            func(response.data.url);
        }
    );
}
</script>
代码语言:javascript
运行
复制
<script>

$('#twitter').on('click', function() {

    get_short_url(login, api_key, function(short_url) {
        win = window.open('https://twitter.com/intent/tweet?text=Get Free Rides at Electric Studio! Sign up ' + short_url + ' to purchase your first timer package! After your first ride, you get 1 ride on us!' + ' https://www.electricstudio.ph/', '_blank');
        win.focus();
    });
});
</script>
EN

回答 2

Stack Overflow用户

发布于 2017-06-06 04:57:43

我已经在火狐浏览器、Chrome浏览器和互联网浏览器上工作了。

代码语言:javascript
运行
复制
var url = 'https://twitter.com/intent/tweet?text='+encodeURIComponent('Get Free Rides at Electric Studio! Sign up xx to purchase your first timer package! After your first ride, you get 1 ride on us! https://www.electricstudio.ph/');
console.log(url);
var win = window.open(url, '_blank');
win.focus();

票数 0
EN

Stack Overflow用户

发布于 2017-06-06 08:00:12

我不认为您可以绕过弹出警报,因为它是浏览器处理的安全。对于您的个人计算机,您可以更改安全设置以将此站点标记为异常,然后将不再提示您。

对于希望从on ajax调用传递值到另一部分的第二部分,可以创建如下所示的对象并将其作为响应传递。

代码语言:javascript
运行
复制
function(response)
{
    func({'shortURL' : response.data.url, 'yourValue': customValue });
}

并在您的另一个函数中访问它,如

代码语言:javascript
运行
复制
get_short_url(login, api_key, function(result) {
    var custVal = result.customValue;  //Your custom value
    win = window.open('https://twitter.com/intent/tweet?text=Get Free Rides at Electric Studio! Sign up ' + result.shortURL + ' to purchase your first timer package! After your first ride, you get 1 ride on us!' + ' https://www.electricstudio.ph/', '_blank');
    win.focus();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44381377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档