以下の問題はスコープに関連していると思いますが、jQueryのプラグインパターンではあまりよくありません。どうすれば解決できますか?Jqueryのコールバック - キャッチされていないReferenceError
詳細
私はこのchrome extension
で(クロスドメイン)an issueを修正しようとしている私は、私は(anyorigin.com
を使用して)解決策を見つけたが、私は$.getJSON
と新しい問題だと思う:
Uncaught ReferenceError: jQuery19109374020271279013_1462700430014 is not defined:
?url=https%3A//thepiratebay.cr/search/I%20Will%20Survive%201999/0/7/0&callback=jQuery19109374020271…:1 Uncaught ReferenceError: jQuery19109374020271279013_1462700430016 is not defined(anonymous function) @ ?url=https%3A//thepiratebay.cr/search/I%20Will%20Survive%201999/0/7/0&callback=jQuery19109374020271…:1
ここでコードがdoSearch()
の関係は次のとおりです。
(function($) {
$.fn.extend({
tpbSearch : function(options){
var defaults = { searchTerm: ''};
var options = $.extend(defaults, options);
return this.each(function(){
doSearch($(this), options.searchTerm);
})
}
});
// private functions
// ....
function buildSearchUrl(searchTerm)
{
var searchPart = 'https://thepiratebay.cr/search/' + encodeURIComponent(searchTerm) + '/0/7/0';
var searchUrl = 'http://anyorigin.com/get?url=' + escape(searchPart) + '&callback=?';
return searchUrl;
}
// function where the issue happens.
function doSearch(container, searchTerm){
// here we should iterate over the container selector, because it's possible multiple items will be selected.
var sanitizedSearchTerm = sanitizeSearchTerm(searchTerm);
// set the default logo
var loadingImageUrl = chrome.extension.getURL('images/ajax-loader.gif');
var logo = $('<img id="tpb-logo">')
.attr('src', loadingImageUrl)
.css('width', '25px')
.css('height', '25px');
container.children().remove();
container.append(logo);
var searchUrl = buildSearchUrl(sanitizedSearchTerm);
$.getJSON(searchUrl, function(data){
alert('aa');
});
}
}(jQuery));
JSONの部分(jsコンソールの同じページにある同じコマンド)について正しいのかどうか分かりませんが、とにかくCORSとChromeのextについては絶対に正しいです。それは魅力のように働く。 Thx – WonderLand
ああ、そのコードはコンテンツスクリプトのものです。その後、問題は孤立した世界です。私は正しい答えを更新しました。 – Xan