Расширение Chrome - конвертировать в бит и копировать - PullRequest
0 голосов
/ 04 апреля 2019

Я собрал этот код, который по моему (нулевому) опыту должен быть близок к тому, чтобы делать то, что мне нужно (добавить utm к текущей ссылке, преобразовать ее в битовую, а затем скопировать в буфер обмена)

Я попробовалотлаживать столько, сколько я могу, но, как я уже сказал, я не эксперт по Javascript и cuold не очень далеко, также не удалось устранить неполадки из Devtools на Chrome, так как это расширение, но в основном я получаю правильный адрес, но (HTML имеет всплывающее окно с правильным адресом) его ничего не копировать в буфер обмена.что я сделал не так?(этот код представляет собой смесь других источников, как я сказал, я не знаю javascript, я в основном использую Python, и я там не эксперт. Script.js:

window.onload = function() {
    function ShortLinkBitly( pLongUrl ) { /*pLongUrl is the long URL*/
    if ( !pLongUrl.match(/(ftp|http|https):\/\//i) ) {
        return "Error: Link must start with a protocol (e.g.: http or https).";
    }
    var apiKey = 'XXXXXXXXXXXXXXXXXXXXXX';
    var username = 'XXXXXXX';
    /*Ajax call*/
    $.ajax(
    {
        url: 'https://api-ssl.bitly.com/v3/shorten?login=' + username + '&apiKey=' + apiKey + '&format=json&longUrl=' + encodeURIComponent(pLongUrl),
        dataType: 'jsonp',
        success: function( response ) {
            if ( response.status_code == 500) {
                /*500 status code means the link is malformed.*/
                return "Error: Invalid link.";
            } else if ( response.status_code != 200) {

                /*If response is not 200 then an error ocurred. It can be a network issue or bitly is down.*/
                return "Error: Service unavailable.";

                /*Uncomment the following line only for debugging purposes*/
                /*console.log('Response: ' + response.status_code + '-' + response.status_txt);*/
            }
            else
                return response.data.url; /* OK, return the short link */
        },

        contentType: 'application/json'
    });
}
    chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
    var urlArea = document.getElementById("urlArea");       
    urlArea.innerHTML = tabs[0].url.concat("?utm_medium=callcenter&utm_source=callcenter&utm_campaign=TestMauro");
    var URL = urlArea.innerHTML
    URL = ShortLinkBitly(URL)
        var dummy = document.createElement("input");
    document.body.appendChild(dummy);
    dummy.setAttribute('value', URL);
    dummy.select();
    document.execCommand("copy");
    document.body.removeChild(dummy);
    document.getElementById("title").innerHTML = "Link copied successfully";
    });
}

index.html:

<!doctype html>
<html>
<head>
<link rel="stylesheet" href="styles.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="scripts.js"></script>
</head>
<body>
<h3 id="title">Copylink</h3>
<textarea id="urlArea"></textarea>
</body>
</html>

Я также проверил свою учетную запись, и ни один адрес не был создан, так что явно что-то там не работает? Спасибо всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...