0
我正在爲Shopify構建應用程序 - 目的是插入腳本標記。我需要編寫插入代碼的幫助。插入自執行腳本JavaScript/Shopify
我是following this advice來檢查jQuery是否已經加載,然後在中間加載我的代碼。但是,它似乎並沒有工作。下面是具體的代碼:
(function(){
var loadScript = function(url, callback){
var script = document.createElement("script")
script.type = "text/javascript";
if (script.readyState){ //IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" ||
script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { //Others
script.onload = function(){
callback();
};
}
script.src = url;
document.getElementsByTagName("head")[0].appendChild(script);
};
// my actual jQuery code
var myAppJavaScript = function($){
var convert = $('.click-2-tweet-shopify');
$.each(convert, function(index, item){
var content = $(item).text().compact();
$(item)
.addClass('ui segment')
.append('<a target=_blank class="pointer float-right"><i class="twitter icon"></i>Click2Tweet</a>')
.children('a')
.attr('href', "http://twitter.com/share?" + $.param({ text: content }));
});
// twitter code snippet
!function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = "https://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
};
if ((typeof jQuery === 'undefined') || (parseFloat(jQuery.fn.jquery) < 1.7)) {
loadScript('//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', function(){
jQuery191 = jQuery.noConflict(true);
myAppJavaScript(jQuery191);
});
} else {
myAppJavaScript(jQuery);
}
});
請想象一下這個腳本的目的是要獨立的。如果有人將這個添加到任何頁面,它應該按原樣工作(因爲它最初加載jQuery)。我應該如何調整代碼以按預期工作?
什麼工作不忘記第二
I
? jQuery沒有被加載? – lshettyl我沒有收到任何控制檯錯誤,但代碼本身$(item).addClass('ui segment')沒有添加任何類。 – ilrein
但是'var convert'作爲一個jQuery對象正像'$ .each'一樣工作? –