не работает скрипт js в html
Не подключается JS файл к html?
Доброго времени суток, у меня вопрос по поводу JS. Хочу подключить JS, простой дождь на главной странице. Но вот проблема, подключить то подключил, а вот почему он не показывается? Да и вообще никакие JS не показываются. В настройках браузера включено.
Вот строка подключения:
простой дождь на главной странице.
Это просто всевышний не позволяет вам совершить роковую ошибку.
Ну быть может вариант, а почему у меня вообще скрипты не работают то?
Вот подключены в HTML:
Ни один из них не работает.
Тут не просто надо скрипт подключить и всё, а ещё подумать чуть-чуть головой и посмотреть хотя-бы, что в самом js файле написано =) Дальше в html пишем после подключения всех скриптов, еще 1 скрипт на подключение самого эффекта к странице(background), что-то типо того:
Если не заработает, поработай с css, назначь body background туже картинку, что в скрипте.
Желаю удачи.
Не вызывается функция js из html
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Не вызывается функция
Здравствуйте. Не понимаю почему, но код работает, а программа даже не заходит в функцию. В чем.
Не вызывается функция
Здравствуйте. Не работает условие в цикле. Просто не вызывается функция prior. Как исправить? int.
Не вызывается функция?
int main() < cout 16
Вложения
script.rar (767 байт, 3 просмотров) |
Мда, странно вот какой путь сработал file:///C:/Users/PC/Desktop/root/sourse.js
Спасибо.
Добавлено через 1 минуту
Обновился до десяточки.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Не вызывается функция
Всем привет. Вот мой код https://jsfiddle.net/ueagLh0d/ Требуется удалить класс shake у инпута.
Не вызывается функция js
изучаю javascript только. Решил написать простенькую программу по подбору ПК комплектующих.
Не вызывается функция
Когда код функции находился в главной функции, то выполнялся без нареканий(не считая выскакивания.
Фундаментальная уязвимость HTML при встраивании скриптов
Чтобы описать суть проблемы, мне нужно рассказать, как вообще устроен HTML. Вы наверняка в общих чертах представляли себе, но я все равно коротко пробегусь по основным моментам, которые понадобятся для понимания. Если кому-то не терпится, сразу переходите к сути.
HTML — это язык гипертекстовой разметки. Чтобы говорить на этом языке, нужно соблюдать его формат, иначе тот, кто читает написанное, не сможет вас понять. Например, в HTML у тегов есть атрибуты:
Если это не то, чего вы ожидали, вам нужно как-то изменить значение атрибута, чтобы в нем не встречалась кавычка. Самое простое, что можно придумать — просто вырезать кавычки.
Чтобы вы могли указать в качестве значения любую строку, формат языка HTML предлагает возможность экранировать значения атрибутов. Вместо кавычки в строке значения вы можете записать последовательность символов [«] и парсер поймет, что в этом месте в исходной строке, которую вы хотите использовать в качестве значения атрибута, была кавычка. Такие последовательности называются HTML entities.
Получается, что преобразование из исходной строки в ту, которую мы запишем между двумя символами кавычек, является однозначным и обратимым. Благодаря этим преобразованиям можно записать и прочитать любую строку в качестве атрибута HTML-тега, не вдаваясь в суть её содержимого. Вы просто соблюдаете формат, и все работает.
Собственно, так работает большинство форматов, с которыми мы сталкиваемся: есть синтаксис, есть способ экранирования контента от этого синтаксиса и способ экранирования символов экранирования, если вдруг такая последовательность встречается в исходной строке. Большинство, но не…
Что тут должно происходить: переменной s должна присваиваться безобидная строка.
Получается парадоксальная ситуация: после встраивания валидного Javascript в валидный документ HTML абсолютно валидными средствами мы можем получить невалидный результат.
На мой взгляд это и является уязвимостью разметки HTML, приводящей к уязвимостям в реальных приложениях.
Как эксплуатируется уязвимость
Конечно, когда вы просто пишете какой-то код, трудно представить, что вы напишете в строке и не заметите проблем. Как минимум, подсветка синтаксиса даст вам знать, что тег закрылся раньше времени, как максимум, написанный вами код не запустится и вы будете долго искать, что произошло. Но это не является основной проблемой с этой уязвимостью. Проблема возникает там, где вы вставляете какой-то контент в Javascript, когда генерируете HTML. Вот частый кусок кода приложений на реакте с серверным рендерингом:
В initialState может появиться в любом месте, где данные поступают от пользователя или из других систем. JSON.stringify не будет менять такие строки при сериализации, потому что они полностью соответствуют формату JSON и Javascript, поэтому они просто попадут на страницу и позволят злоумышленнику выполнить произвольный Javascript в браузере пользователя.
Но на закрывающем теге приколы не заканчиваются. Опасность представляет и открывающий тег
Что видит здоровый человек и большинство подсветок синтаксиса в этом коде? Два тега ниже, хе-хе). Если вы до этого не сталкивались с подобным, то можете подумать, что я сейчас шучу. К сожалению, нет. Вот скриншот DOM-дерева примера выше:
А вы точно спецификация?
Спецификация HTML, помимо того, что запрещает использование легальных последовательностей символов внутри тега «‘; console.log(script.outerHTML); >>> «
Как видите, строка с сериализованным элементом не будет распаршена в элемент, аналогичный исходному. Преобразование DOM-дерево → HTML-текст в общем случает не является однозначным и обратимым. Некоторые DOM-деревья просто нельзя представить в виде исходного HTML-текста.
Как избежать проблем?
Как вы уже поняли, способа безопасно вставить Javascript в HTML нет. Но есть способы сделать Javascript безопасным для вставки в HTML (почувствуйте разницу). Правда для этого нужно быть предельно внимательным всё время, пока вы пишете что-то внутри тега
Точно так же можно экранировать и отдельные строки.
Другой совет — не встраивайте в тег «>
Но, по-хорошему, конечно, если вы хотите нормально разрабатывать приложения, а не аккуратно ходить по минному полю, нужен надежный способ встраивания скриптов в HTML. Поэтому правильным решением считаю вообще отказаться от тега
Код внутри выглядит ужасно и непривычно. Но это код, который попадет в сам HTML. В шаблонизаторе, который вы используете, можно сделать простой фильтр, который будет вставлять тег и экранировать все его содержимое. Вот так может выглядеть код в шаблонизаторе Django:
Почему не работают скрипты из внешнего файла? — Хабр Q&A
Почему погружаемый javascript на локальной машине работает, а при загрузке на сервер не хочет?
Имеется страница, на которую через
подгружается блок с таблицей. И есть JavaScript который работает с динамической (на стороне клиента) сортировкой колонок в этой таблице. На локальной машине (с локальным сервером) все работает, но с сервера не хочет. Пробовал несколько способов:
Вариант 1
Решаем в лоб:
помещен подгрузка скрипта:
или сам скрипт целиком.
На локале работает, на сервере нет.
Вариант 2
Пробуем подгрузку JavaScriot только после завершения load :
убираем скрипт (хотя эти и ничего не меняет).
На локале работает, на сервере нет.
Вариант 3
Возможно, в предыдущем примере load сообщил что все ОК! но имел в виду, что загрузка возможна (url ‘/stat/rating/profiles_rank/’ доступен и блок ‘#to_load’ тоже), но сама загрузка завершена не была. Тогда вот так:
На локале работает, на сервере нет.
При этом на сервере JavaScript явно загружается и частично отрабатывает: появляются метки сортировки и происходит инициализация таблицы (построчное
Извращения:
Если ставить задержки для загрузки JavaScript, например вот так:
Вообще ничего и нигде не работает.
Размышления 2
Возможно дело в скрипте сортировки таблицы. Сам я его не придумывал, а модифицировал готовый. Но получилось так:
Понимаю его только отчасти. Но очевидно, что
происходит. Возможно, что
конфликтует с чем-то, но почему он не конфликтует на подгружаемой странице
где все тоже самое, просто загрузка скрипта стационарна, а не через
Собственно, пока идей нет, но проблему хочется решить.
UPD1: Заметил, что иногда в подгружаемом вариант скрипт все таки работает как положено. Примерно в 2-5% случаев. Почему??
UPD2: Оборачивание некоторых функций сортировщика в try<. >cache(e)<> немного улучшило ситуацию. В частности:
Но скорее всего дело все равно не в этом. На более развесистых DOM (например:
) все равно не работает.
Отказоустойчивость
К сожалению, мир не идеален, случаются пожары, аплинки падают, ДЦ целиком уходят под воду, РКН блочит подсети, а люди совершают ошибки. Тем не менее, необходимо уметь обрабатывать такие ситуации и продолжать работать.
МониторингСначала надо понять, что что-то пошло не так. Можно, конечно, подождать, пока пользователи придут и пожалуются, но лучше настроить мониторинг и алерты, а после релизов, проверять все ли в порядке. Мы мониторим много различных параметров, как серверных, так и клиентских, и если что-то пошло не так, мы сразу это видим. Например, уменьшилось количество загрузок виджета или аномальный всплеск трафика на CDN-серверах.
Суммарное кол-во загрузок виджета по каждой версии
Сбор ошибокJavaScript очень специфичный язык, и допустить в нем ошибку несложно. К тому же зоопарк браузеров в современном вебе очень большой; то, что работает в последнем Chrome, не факт, что будет работать в Safari или Firefox. Поэтому очень важно настроить сбор ошибок из браузера и вовремя реагировать на всплески.
Суммарное кол-ва ошибок со всех сайтов и браузеров
Информация по конкретной ошибке
CDN FailoverВыше я уже писал, что все имеет свойство падать, поэтому важно обрабатывать эти ситуации и лучше — автоматически. Мы прошли несколько этапов фаллбека CDN-серверов, начинали с ручного, а в итоге нашли способ делать это автоматически и оптимально для браузера.
В ручном режиме это работало просто: админам приходило СМС о том что CDN прилег, они совершали определенные манипуляции, после чего виджет начинал загружаться с серверов приложения. Это могло занять от 5 минут до 2 часов времени.
Я знаю, нам нужна javascript-библиотека!
В Святом Граале содержится набор скриптов, загружающихся сразу, без блокирования отрисовки страницы и выполняющихся максимально скоро, в том порядке, в котором мы их добавили. К сожалению, HTML ненавидит вас и не позволит вам этого сделать.
Проблема была решена с помощью JavaScript на разный манер. Некоторые способы требовали от вас вносить изменения в JavaScript, оборачивать всё в callback, который библиотека вызовет в правильном порядке (например, RequireJS). Другие использовали XHR для параллельной загрузки, а затем eval() в нужном порядке, который не работает для скриптов на другом домене, если там нет заголовка CORS и поддержки его в браузере. Некоторые использовали даже супер-магические хаки, как это было сделано в последнем LabJS.
Как только все скрипты были загружены, они добавлялись снова, но уже с корректным mime-типом, в надежде на то, что браузер возьмет их прямо из кэша и сразу выполнит в нужном порядке. Данный способ надеялся на удобное, но непредсказуемое поведение, и сломался, когда HTML5 объявил, что браузеры не должны поддерживать скрипты с непонятным типом.
Оба этих приема имеют проблемы с производительностью сами по себе, вам нужно дожидаться момента, когда JavaScript-код библиотеки загрузится и распарсится прежде чем начнут загружаться скрипты, загрузкой которых библиотека управляет. Кроме того, как мы собираемся загружать загрузчик скриптов?
Почему не работают скрипты из внешнего файла?
Переношу верстку на вордпресс (в первый раз) и происходит что-то странное с js – скриптами. В верстке все работало, а при переносе в шаблон вордпресс – один скрипт работает, другой нет, при том, что они абсолютно одинаковые, управляют модальными окнами. Плагинов там никаких нет, ошибка подключения исключается, т.к. кое-что все же работает.
Решается проблема помещением js-скриптов прямо на страницу шаблона php, но не думаю, что так задумано) Кто-нибудь сталкивался с подобным?
В консоли – ошибка 404 – не загружаются файлы css. Вот код подключения стилей и скриптов, повторюсь, часть скриптов и бОльшая стилей работает.
Что проверить, куда посмотреть?
Async false
Скачивай вместе, выполняй по порядку, когда все загрузятся.
Я понятия не имею что такое “async”, но так случилось, что я выполняю скрипты, добавленные через JS, в порядке, в котором они были добавлены.
Safari 5.0 отвечает:
Я понимаю “async”, но не знаю как установить его в false через JS. Я выполню ваши скрипты тогда, когда они придут, в любом порядке.
Понятия не имею об “async”, но
с использованием “onreadystatechange”.
Другие браузеры красной зоны отвечают:
Я не понимаю “async”, я выполню ваши скрипты тогда, когда они придут, в любом порядке.
Я твой друг, мы сделаем это как по учебнику.
Обратная совместимость
Очень важно максимально быстро прийти к зрелой версии кода-вставки. Потому что обновлять уже установленные коды-вставки будет крайне сложно. Пример из нашей практики: в первых версиях мы использовали числовые ID, но по соображениям безопасности заменили их на число-буквенные.
Оказалось, что очень сложно добиться изменения уже установленного кода-вставки. Многие даже не знают, что такое HTML и как устроены сайты. Например, сайт делали фрилансеры, студия или сайт создавался через CMS/конструктор и т. д. В большинстве случаев наши клиенты работают только с панелью настроек виджета. С тех времен у нас до сих пор в nginx работает мапа реврайта старых ID на новые, в которой около 40К записей.
Из-за этой особенности мы вынуждены сохранять обратную совместимость кода-вставки при всех рефакторингах, которых на нашей памяти было около 5.
У ie есть идея!
IE грузит скрипты не так, как другие браузеры.
IE начинает закачивать “whatever.js” сейчас, другие же браузеры не начнут загрузку до того момента, пока скрипт не будет добавлен к документу. У IE также есть событие “readystatechange” и свойство “readystate”, которые сообщают о процессе загрузки. Это на самом деле очень полезно, потому что позволяет нам управлять загрузкой и выполнением скриптов независимо друг от друга.
Мы можем строить сложные модели зависимости, выбирая когда добавлять скрипты в документ. IE поддерживает такую модель, начиная с 6-ой версии. Довольно интересно, но у этого есть такой же недостаток с обнаруживаемостью браузером, как и у
Почему не работает скрипт? — вопросы и ответы — джино
Вопрос очень неопределенный. Мы не можем однозначно ответить, с чем связана ошибка, но большинство ошибок находятся
непосредственно в коде скрипта. Если вы не являетесь специалистом в установке скриптов, пожалуйста, изучите сначала
принципы работы и описание необходимой вам программы, проверьте правильность настройки, установки прав и т. д.
Основные моменты, на которые стоит обратить внимание:
Обратите внимание, при переносе CGI-скриптов на сервер в настройках FTP-клиента необходимо включить ASCII-режим.
Дело в том, что при написании скриптов в Windows многие редакторы используют символ возврата каретки, что может
быть неверно интерпретировано программой, выполняющейся на хостинге в среде UNIX.
Важно также понимать, что написанный вами скрипт может быть блокирован автоматической системой распределения
ресурсов, если он потребляет чрезмерные ресурсы системы (обычно такое случается крайне редко, и всегда вследствие
грубых ошибок в программном коде скрипта).
Спасибо, ie! (ну ладно, теперь с сарказмом)
Одно дали — другое отобрали. К сожалению, есть неприятный баг в IE4-9, который может спровоцировать
. Вот что происходит:
Допустим, что на странице есть параграф, ожидаемый порядок логов — [1, 2, 3], но в IE9 и ниже результат будет [1, 3, 2]. Некоторые операции DOM вынуждают IE приостановить выполнение текущего скрипта и перед продолжением начать выполнение других скриптов в очереди.
Тем не менее, даже в реализациях без бага, таких как IE10 и других браузерах, выполнение скрипта будет отложено до момента, когда весь документ будет загружен и распарсен. Это удобно, если вы в любом случае ждете DOMContentLoaded, но если вы хотите получить реальный прирост производительности, то вскоре вы начнете использовать listeners и bootstrapping…
Почему на работе не работает большинство javascript скриптов?
Ну так начинайте перебирать:
1) Пробуйте открывать сайты анонимайзером типа cameleo
2) Пробуйте отключить антивирус
3) Если есть свисток свисток от какой-нибудь Yota, то попробуйте отключить текущий провод и выйти в интеренет через свисток.
4) Проверьте, включен ли в браузерах javascript. Не знаю, как альтернативные браузеры поддерживают групповые политики, но на одной из работ у всех стоял только ie, и админ умудрился всем заблокировать js. Причем так заблокировал, что когда лезешь в настройки браузера, галка “разрешить выполнение js” была задизаблена и самому ее не включить.
Ну и самое главное: сходите к админу, который рулит сетью. У меня похожее было на работе: не работали WebSockets, Server-sent events, Forever Frames, Long polling. Блокировка была на уровне сети, уговорил админа добавить исключения.
Решение: политика безопасности контента
Чтобы защитить сайт и страницы от таких атак, придумали CSP — политику безопасности контента. Работает это так:
CSP может запрещать загрузку чужих:
Также политика безопасности может запретить обмениваться данными с любыми другими сайтами, которых нет в разрешённом списке.
Проще говоря, CSP — это фейсконтроль для любых данных, которые кто-то хочет добавить на страницу. Например, мы указали в политике, что картинки и скрипты можно загружать с нашего сайта. Когда злоумышленник попробует встроить на страницу другую картинку и свой скрипт, у него ничего не получится.
Loader
Чтобы загрузить свой скрипт на сторонний сайт, надо учесть множество моментов, но реализовать эту логику в коде-вставки сложно, так как он просто превратится в «мясо». Но делать это все равно надо, для этого мы создали небольшой модуль, который управляет всей этой логикой «под капотом» и загружает основной код виджета.
Таким образом поэтапно мы пришли к схеме, которая покрывает основные кейсы загрузки и инициализации виджета. Она доказала свою эффективность за годы использования на большом количестве различных сайтов. При этом код-вставки остается простым и универсальным, так как в нем нет никакой логики и мы в любой момент можем ее поменять, при этом не заставляя пользователей менять код-вставки.
Введение
В этой статье я хочу научить вас как загружать в браузер JavaScript и выполнять его.
Нет, подождите, вернитесь! Я знаю, что это звучит заурядно и просто, но помните, что это происходит в браузере, где теоретически простое превращается в набор причуд, определенных наследственностью. Знание этих причуд поможет вам выбрать самый быстрый, наименее разрушительный способ загрузки скриптов. Если вы спешите, то можете перейти сразу к краткому справочнику в конце статьи.
Для затравки, вот как спецификация определяет различные способы загрузки и выполнения скриптов:
Как и все спецификации WHATWG, на первый взгляд данная спецификация выглядит как последствия кассетной бомбы на фабрике Scrabble. Но, прочитав ее на 5 раз и вытерев кровь из своих глаз, начинаешь находить ее довольно интересной:
Покажите примеры
Мы хотим запретить выполнение чужих скриптов на странице. За это отвечает свойство script-srс, у которого может быть один из этих параметров:
Получается, что для блокировки всех чужих скриптов на странице нам достаточно написать в политике безопасности:
Content-Security-Policy: script-src ‘self’
Если мы ещё доверяем серверам Яндекса и хотим встраивать их скрипты у себя на страницах (например, плагины Яндекс Музыки), то можем написать так:
Зачем нужна защита от вставки скриптов
Допустим, у нас есть сайт, который обрабатывает персональные данные пользователей: Ф. И. О. и номера телефонов. Часть этих данных получается и обрабатывается в JS-скрипте. Если немного изменить этот скрипт, можно обработать не только свои данные, но и получить данные всех пользователей сайта.
Чтобы изменить скрипт на странице или добавить в него новые команды, используют разные способы, например:
Каждый из этих способов может добавить на страницу свой код и выполнить её как бы от имени страницы сайта. Опасность тут в том, что обычно сайт доверяет тому, что делают его собственные страницы. Если от неё придёт запрос «Отдай мне список всех фамилий и телефонов» и сервер сможет это сделать — он это сделает, и список уйдёт в чужие руки.
Не работает скрипт js, в чём проблема?
Чтобы использовать параметр функции его не нужно обрамлять в кавычки:
Чтобы передать строку в качестве параметра ее нужно обрамлять в кавычки:
Чтобы назначить функцию в качестве обработчика, присваивать нужно функцию, а не результат ее вызова. В данном случае вызов navScript можно обернуть в анонимную функцию
Чтобы применились новые стили их специфичность должна быть как минимум такой же или выше, чем уже примененные:
Почему не работает скрипты на разных страницах?
И что, этого достаточно?
Нет, но это ещё один уровень защиты сайта от злоумышленников и хакеров. Вот несколько других инструментов:
И есть вещи, с которыми очень сложно бороться с помощью программирования, — например, фишинг и социальная инженерия. Но всё это темы для отдельных разговоров.
Изоляция кода
Так как скрипт подключается на сторонний сайт, на котором уже есть JavaScript и CSS код сайта и других сервисов, первостепенной целью является не навредить сайту, чтобы наш код не изменил логику, а тем более не сломал ее. Это может быть JavaScript-ошибка, которая останавливает поток выполнения, или стили, которые переопределяют стили сайта.
Заключение
Надо очень внимательно относиться к коду, который вы отдаете клиентам для вставки на сайт. Мы кратко рассказали, с какими проблемами мы столкнулись и как их решали. В следующих статьях мы более подробно расскажем про некоторые упомянутые темы и другие участки нашей системы, например, как мы используем NodeJS в качестве бэкенда, как держим нагрузку всех 270К сайтов за счет продуманного кеширования и не боимся хабра-эффекта подключенных к нам сайтов, как работаем в полностью распределенной команде и многое другое.
Dom спешит на помощь!
На самом деле, ответ находится в спецификации HTML5, хоть он и скрыт в низу раздела о загрузке скриптов.
The async IDL attribute controls whether the element will execute asynchronously or not. If the element’s “force-async” flag is set, then, on getting, the async IDL attribute must return true, and on setting, the “force-async” flag must first be unset…
Давайте переведем это на “земной язык”:
Перестали работать ява скрипты на всём сайте?
Ява работает на стороне клиента, там не чего серверного нету. т.е. он загружается к вам и у вас запускает свои скрипты.
Это не пхп, который обрабатывает хостинг. Если не чего не меняли в шаблоне, тогда смотрите антивирусы, блокировщики рекламы. Добавляйте свой сайт в инсключения. Если меняли что-то в шаблонах, подключали ява скрипты, тогда отключайте, они конфликтуют.
Идентификация
Просто так подключать скрипт мало кому интересно, наверняка скрипт выполняет какую-либо логику, а эта логика привязана к пользователю. Например, ID счетчика, APP_ID от соцсети, в нашем случае это ID созданного канала связи. То есть скрипт должен идентифицировать пользователя в запросах на сервер. Для идентификации клиента через код-вставки есть три варианта реализации.
Вариант #1
А как это использовать?
Чтобы вся эта магия работала, нам нужно сообщить браузеру о нашей политике безопасности. Это можно сделать несколькими способами.
Входная точка
Театр начинается с вешалки, а подключаемый сервис с кода-вставки. Он является входной точкой для любого сервиса или модуля на сайт. Как правило, его можно найти в инструкции установки, после чего необходимо добавить его в HTML-код сайта, а дальше происходит «магия», которая определенным образом загружает и инициализирует скрипт.
Сторонние сервисы
Ну и напоследок стоит упомянуть про сторонние сервисы, которые подключаются на сайт или каким-либо образом взаимодействуют с сайтами: поисковые боты, аналитика, различные парсеры и так далее. Эти сервисы оставляют отпечаток на работе, про это тоже не стоить забывать. Расскажу несколько случаев из нашей практики.
Почему не работает javascript в html?
1) Ещё убрать нежелательный пробел в самом последнем
2) Четвёртую снизу строку JS переписать так: dn.style.display = “none”;
3) Если строка подключения JS в самом начале всего кода, то переместить её в конец.
Настройки
В большинстве случаев у подключаемых скриптов есть какие-либо настройки, отвечающие за внешний вид или логику работы. Эти настройки необходимо «прокидывать» в подключаемый скрипт, для этого существуют два принципиально разных подхода.
Иуу, должно быть что-то получше, что мы можем использовать сейчас?
Ладно, ради бонусных очков, если вы всерьез думаете о производительности и не боитесь сложности и дублирования, то можете объединить несколько рассмотренных трюков.
Во-первых, мы добавим объявление subresource для предзагрузчиков:
Эта статья меня удручает
Ситуация удручающая и вы должны чувствовать себя удрученным. Еще нет декларативного способа без повторений для загрузки скриптов быстро и асинхронно, в то же время управляя порядком выполнения.
Хватит! как я должен загружать скрипты?
Ладно, ладно. Если вы хотите загружать скрипты способом, который не блокирует отрисовку, не требует дублирования и имеет прекрасную поддержку браузеров, то я советую вот этот:
Что дальше
Дальше настроим политику безопасности на нашем учебно-боевом сервере и проверим, как она работает. Заодно посмотрим, какие ещё у неё есть важные параметры и как ими управлять.
- С чем сделать пирожки слоеные
- java для windows 7 x32 для майнкрафт