Myślałem o czymś. Na moim forum znajdują się domyślne kody CSS, które użytkownicy mogą wybierać. Zmienia to wszystko z tła na kolor tekstu. Mam kod javascript. Czy możliwe jest uczynienie tego tak, aby javascript był częścią CSS, więc jeśli pewien kod CSS jest domyślny, to częścią tego jest javascript?Wprowadzanie kodu JavaScript do CSS
Odpowiedz
You can, ale tak naprawdę nie powinieneś. Zamiast tego użyj osobnych plików skryptów, które odpowiadają używanym plikom CSS. Może zadaj inne pytanie, w którym przedstawisz konkretny scenariusz, w którym próbujesz rozwiązać konkretny problem, i prawdopodobnie możemy powiedzieć Ci, co zwykle robi się, aby go rozwiązać.
Jest obejść ...
Nie umieszczenie skryptu w czystym kodzie CSS, ale mieć skrypt do generowania CSS zależności co skryptowy język używasz (np PHP) Twój link do pliku CSS powinien wyglądać następująco:
<link href="/styles.php" media="screen" rel="stylesheet" type="text/css" />
można nawet dodać params jak:
<link href="/styles.php?type=main" media="screen" rel="stylesheet" type="text/css" />
a ty styles.php co powinien wyglądać plik CSS z kilka wyjątków:
body {
<?php if ($_GET['type'] == 'main') echo color: BLACK; else color: RED; ?>
.........
}
chciałem osiągnąć to samo (ma zmienne i pewnej logiki przetwarzania w CSS), który podpuszczony mi rozwinąć kilka narzędzi jednostkowych (jeden kątowe i jeden V-JS):
CjsSS.js to narzędzie Vanilla Javascript (więc nie ma zewnętrznych zależności), które obsługuje powrót do IE6.
ngCss jest moduł kątowy + filtr + Factory (aka: plugin), który obsługuje kątowa 1.2+ (więc z powrotem do IE8)
Oba zestawy narzędzi pozwoli Ci zrobić to w stylu tag lub w zewnętrznym pliku * .css:
/*
<script src='external_logic.js'></script>
<script>
var mainColor = "#cccccc";
</script>*/
BODY {
color: /*{{mainColor}}*/;
}
a to z twoich na stronie style
atrybuty:
<div style="color: {{mainColor}}" cjsss="#sourceCSS">blah</div>
(lub ngCss)
<div style="color: {{mainColor}}" ng-css="sourceCSS">blah</div>
UWAGA: W ngCss, można również zrobić $scope.mainColor
zamiast var mainColor
Domyślnie JavaScript jest wykonywany w piaskownicy IFRAME, ale tak naprawdę to nie jest inaczej od sposobu, w jaki przeglądarka przetwarza twoje pliki * .js. Po prostu pamiętaj, aby stworzyć swój własny CSS i hostować go na swoim własnym serwerze, wtedy XSS nie jest problemem. Ale piaskownica zapewnia o wiele więcej bezpieczeństwa i spokoju ducha.
CjsSS.js i ngCss spaść gdzieś w między innymi narzędziami wokół osiągnąć podobne zadania:
LESS, SASS i Stylus są tylko wszystkie Preprocesory i wymagają, aby nauczyć się nowego języka i magiel CSS. Zasadniczo rozszerzyli CSS o nowe funkcje językowe. Wszystkie są również ograniczone do wtyczek opracowanych dla każdej platformy, podczas gdy CjsSS.js i ngCss pozwalają na dołączenie dowolnej biblioteki JavaScript poprzez
<script src='blah.js'></script>
.AbsurdJS zobaczył te same problemy z preprocesorami i poszedł w przeciwnym kierunku; zamiast rozszerzania CSS, AbsurdJS stworzył bibliotekę JavaScript do generowania CSS bez bezpośredniego dotykania CSS.
CjsSS.js i ngCss zajęły pierwsze miejsce; znasz już CSS, znasz już Javascript, więc pozwól im pracować razem w prosty, intuicyjny sposób. CjsSS.js można uruchomić po stronie serwera (poprzez Node.js) w celu wstępnego przetworzenia CSS lub oba mogą być uruchamiane po stronie klienta. Można również uruchomić w sposób hybrydowy, w którym większość zmiennych jest wstępnie przetwarzana, a pozostałe są wykonywane po stronie klienta.
- 1. Zmniejszanie kodu i Obsfucating CSS podobny do JavaScript
- 2. CSS - sprytniejsze komentarze do kodu
- 3. Wprowadzanie pliku CSS do strony internetowej za pomocą rozszerzenia firefox
- 4. Egzekutor kodu JavaScript lub narzędzie do sprawdzania kodu JavaScript
- 5. ASP.NET 5 MVC6 Niestandardowe umieszczanie kodu CSS & JavaScript
- 6. Wprowadzanie Scala do mojej firmy
- 7. Dostęp do CSS właściwość niestandardową (aka CSS zmienną) poprzez JavaScript
- 8. Wstrzymywanie wykonywania kodu JavaScript do naciśnięcia przycisku
- 9. Przepuszczasz zmienną javascript do kodu php?
- 10. Wiązanie kodu Javascript do aplikacji GWT
- 11. Czy istnieje narzędzie do komentowania kodu JavaScript?
- 12. Wtyczki Mavena do analizy jakości kodu javascript
- 13. Używanie JavaScript do edycji gradientu CSS
- 14. Dostęp do zmiennej CSS z javascript
- 15. Zmiana klas CSS z kodu
- 16. Biblioteki kontraktu kodu JavaScript?
- 17. Techniki grupowania kodu javascript
- 18. Javascript duplikat detektor kodu?
- 19. Porządkowanie kodu javascript
- 20. Jak obsługiwać wprowadzanie danych do daty w Laravel
- 21. Wyszukiwanie stylów wbudowanych w JavaScript w celu debugowania kodu JavaScript
- 22. zoom css/javascript
- 23. Wprowadzanie ciągu znaków do modułu elastycznego lexer
- 24. Wprowadzanie Chrome do uruchomienia przez Selenium
- 25. Wprowadzanie wartości niemożliwej do zniesienia zerowania
- 26. Wprowadzanie funkcji bez przesłonięcia
- 27. DataGridView ograniczyć wprowadzanie użytkownika
- 28. Jak rozszyfrować wprowadzanie mowy
- 29. Wywołanie kodu darta z javascript
- 30. AutoFac: Wprowadzanie wartości NULL
Istnieje wiele różnych sposobów osadzania JS w CSS. Zobacz np. http://stackoverflow.com/questions/3607894/cross-site-scripting-in-css-stylesheets – grahamparks
Nigdy nie powinieneś umieszczać JS w CSS ze względu na wydajność/kompatybilność, ale nie powinieneś zakładać, że hakerzy nie mogą z powodów Grahamparks zawiera linki do. –
Dzięki @grahamparks, odpowiednio edytowane. –