Я собрал этот код, который по моему (нулевому) опыту должен быть близок к тому, чтобы делать то, что мне нужно (добавить 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>
Я также проверил свою учетную запись, и ни один адрес не был создан, так что явно что-то там не работает? Спасибо всем!