Попытка использовать jQuery ui в расширении Google Chrome на уровне содержания

Проблема состоит в том, что объем сценария содержания находится на веб-странице, которая Ваш плагин, предполагают, чтобы использоваться в.

Таким образом, CSS background:url (images/ui-bg_inset-hard_100_fcfdfd_1x100.png) становится URL ('http://webpageforplugin/images/ui-bg_inset-hard_100_fcfdfd_1x100.png') для этого для работы насколько я понял, что у меня должен быть он для указания на: URL ('хром-extension://extensionId/images/ui-bg_inset-hard_100_fcfdfd_1x100.png')

Таким образом, я попробовал к haxorz document.styleSheets

var ss = document.styleSheets;

for (var i=0; i-1){
        for (var j=0; j

Я чувствую, что пропускаю очевидное. То, что должен быть более легкий путь.

Даже если мне удается изменить это, как я заставлю дополнительный идентификатор создавать строку.

Btw это не работает, значки, правильно не выбираются. (Я hardcoded дополнительный идентификатор)

Какие-либо идеи?

5
задан 5 May 2010 в 02:43
поделиться

2 ответа

В настоящее время у меня есть это: (jquery-ui-content.hack.js)

$(function(){
    function fixcsspath(rules, folder){
        var path_prefix = chrome.extension.getURL('');
        var lookfor = 'url(';
        var ss = document.styleSheets;

        for (var j=0; j<rules.length; j++) {
            var b = rules[j].style['background-image'];
            var s;
            if (b && (s = b.indexOf(lookfor)) >= 0 ){
                s = s + lookfor.length;
                rules[j].style['background-image'] = b.replace(b.substr(s,b.indexOf(folder)-s), path_prefix);
            }   
        }
    };

    var ss = document.styleSheets;

    for (var i=0; i<ss.length; i++) {
        var rules = ss[i].rules || ss[i].cssRules;
        if (rules[0].selectorText!="#chrome-extention-relative-paths")
            continue;
        fixcsspath(ss[i].rules, '/images/');
    }
});

И я просто поместил это в первую строку каждого css, которому это нужно

#chrome-extention-relative-paths {}

ВНИМАНИЕ это работает только для background-image urls, что является всем, что требуется для jquery ui

2
ответ дан 15 December 2019 в 06:19
поделиться

Кажется, мне удалось получить предварительное решение этой проблемы, хотя оно не самое лучшее, но работает ;-)

По сути, он заключается в редактировании jquery-ui-1.8.1.custom.css темы jQueryUI и замене всех вхождений конструкции url () с использованием относительных путей на абсолютные онлайн-пути. Например, замените url (images / ui-bg_highlight-soft_100_eeeeee_1x100.png) на url ( http://jquery-ui.googlecode.com/svn/tags/1.8.1/themes/ui- lightness / images / ui-bg_highlight-soft_100_eeeeee_1x100.png ) "с использованием файлов с сайта подрывной версии jQueryUI. Как видите, вам нужно только поставить впереди " http://jquery-ui.googlecode.com/svn/tags/1.8.1/themes/ui-lightness/ " с учетом конкретная тема, которую вы используете или хотите использовать (в данном случае "ui-lightness").

Если я найду лучшее решение, я дам вам знать. Пожалуйста, сделайте то же самое; -)

Best,

         Germán.
0
ответ дан 15 December 2019 в 06:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: