UIWebView - загрузка локального CSS в удаленный сайт - PullRequest
3 голосов
/ 04 декабря 2011

Похоже, есть несколько предложений, но, похоже, ничего не работает: https://stackoverflow.com/search?q=UIWebview+load+local+css+remote+website&submit=search

Я загружаю 2 файла JavaScript после загрузки веб-сайта.

Первый устанавливает некоторые свойства, а второй проходит через DOM и изменяет форматирование страницы. Я могу убедиться, что тег ссылки с правильным href вставлен в DOM, просматривая элементы ссылки. Обработка, выполняемая вторым сценарием, также выполняется правильно.

Я также могу установить это как букмарклет в браузере, и это работает во всех браузерах, которые я тестировал до сих пор. Только CSS не принимает UIWebView.

Кто-нибудь заставил это работать недавно?

Obj-C

NSString * css = [[NSBundle mainBundle] pathForResource:@"mycss" ofType:@"css"];
NSURL * cssURL = [NSURL fileURLWithPath:css];
[_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"appendCSS('%@')", cssURL]];

JavaScript

function appendCSS(csshref)
{
    //alert(css);
    var css=document.createElement('link');
    css.rel='stylesheet';
    css.href=csshref;
    css.type='text/css';
    css.media='all';
    //Try a couple of things. Appear to be equivalent.
    //document.documentElement.appendChild(css);
    document.getElementsByTagName('head')[0].appendChild(css);
}

1 Ответ

0 голосов
/ 04 декабря 2011

Удаленная веб-страница не может получить доступ к локальным файлам.(URL, который вы используете, относится к файлу в вашем комплекте.)

Можете ли вы разместить CSS в другом месте?В противном случае вы можете просто загрузить CSS из файла и вставить его в DOM в элементе стиля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...