Расширение регулярных выражений выдает ошибку «неопределенное не является функцией»?

#jquery #google-chrome-extension

#jquery #google-chrome-extension

Вопрос:

В моем расширении оно должно заменить все строки, подобные "/jxXn1sxDJ with <a href="imgur.com/jxXn1sxDJx">/jxXn1sxDJx</a> , хотя в консоли написано «undefined не является функцией». Вот мой код

 var site_content = $("body").html().replace(/(/[a-zA-Z0-9]{8,})(?=s)/g, '<a href="http://www.imgur.com$1">$1</a>');
$("body").html(site_content);
 

Пожалуйста, обратите внимание, что jQuery включен правильно; другие части расширения, использующие jQuery, работают нормально; но они не будут работать, если я не закомментирую эти две строки.

Комментарии:

1. включен ли у вас jQuery? похоже $ , не определено

2. да, я включил его сначала в фоновом режиме и в разделе скрипты в манифесте

3. все остальные функции jQuery в расширении работают нормально

Ответ №1:

мне кажется, что вы получаете body содержимое до его полной загрузки, попробуйте разместить свой код после полной загрузки тела:

 $(window).load(function(){
    var site_content = $("body").html().replace(/(/[a-zA-Z0-9]{8,})(?=s)/g, '<a href="http://www.imgur.com$1">$1</a>');
    $("body").html(site_content);
});