Sdscompany.ru

Компьютерный журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Javascript в url

Использование JavaScript на веб-страницах

Клиентский JavaScript-код может встраиваться в HTML-документы четырьмя способами:

встроенные сценарии между парой тегов ;

из внешнего файла, заданного атрибутом src тега :

В языке разметки XHTML содержимое тега

В следующем примере демонстрируется содержимое HTML-файла, включающего простую программу на языке JavaScript. Действия программы описываются в комментариях, тем не менее замечу, что главная цель этого примера в том, чтобы продемонстрировать, как JavaScript-код встраивается в файлы HTML наряду со всем остальным, в данном случае — со стилями CSS:

Сценарии во внешних файлах

Файл JavaScript-кода обычно имеет расширение .js и содержит JavaScript-код в «чистом виде» без тегов . Обратите внимание, что закрывающий тег обязателен, даже когда указан атрибут src и между тегами отсутствует JavaScript-код. В разметке XHTML в подобных случаях можно использовать единственный тег будет находиться какой-либо текст, не являющийся пробельными символами или комментариями на языке JavaScript.

Использование тега с атрибутом src дает ряд преимуществ:

HTML-файлы становятся проще, т.к. из них можно убрать большие блоки JavaScript-кода, что помогает отделить содержимое от поведения.

JavaScript-функцию или другой JavaScript-код, используемый несколькими HTML-файлами, можно держать в одном файле и считывать при необходимости. Это уменьшает объем занимаемой дисковой памяти и намного облегчает поддержку программного кода, т.к. отпадает необходимость править каждый HTML-файл при изменении кода.

Если сценарий на языке JavaScript используется сразу несколькими страницами, он будет загружаться браузером только один раз, при первом его использовании — последующие страницы будут извлекать его из кэша браузера.

Атрибут src принимает в качестве значения произвольный URL-адрес, поэтому JavaScript-программа или веб-страница с одного веб-сервера может воспользоваться кодом (например, из библиотеки подпрограмм), предоставляемым другими веб-серверами. Многие рекламодатели в Интернете используют этот факт.

Возможность загружать сценарии с других сайтов еще больше увеличивает выгоды, получаемые от кэширования: компания Google продвигает использование стандартных, хорошо известных URL-адресов для часто используемых клиентских библиотек, что позволяет браузерам хранить в кэше единственную копию, совместно используемую многими сайтами в Веб. Привязка сценариев JavaScript к серверам компании Google может существенно уменьшить время запуска веб-страниц, поскольку библиотека наверняка уже будет храниться в кэше браузера пользователя, но при этом вы должны доверять стороннему программному коду, который может оказаться критически важным для вашего сайта. За дополнительной информацией обращайтесь по адресу: code.google.com/apis/ajaxlibs/.

Возможность загрузки сценариев со сторонних серверов, отличных от тех, где находятся документы, использующие эти сценарии, влечет за собой важное следствие, имеющее отношение к обеспечению безопасности. Политика общего происхождения предотвращает возможность взаимодействия сценария на JavaScript в документе из одного домена с содержимым из другого домена. Однако следует отметить, что источник получения самого сценария не имеет значения, значение имеет источник получения документа, в который встраивается сценарий.

Таким образом, политика общего происхождения в данном случае неприменима: JavaScript-код может взаимодействовать с документами, в которые он встраивается, даже если этот код получен из другого источника, нежели сам документ. Включая сценарий в свою веб-страницу с помощью атрибута src, вы предоставляете автору сценария (или веб-мастеру домена, откуда загружается сценарий) полный контроль над своей веб-страницей.

Обработчики событий в HTML

JavaScript-код, расположенный в теге

JavaScript-код может регистрировать обработчики событий, присваивая функции свойствам объектов Element (таким как onclick или onmouseover), представляющих HTML-элементы в документе.

Свойства обработчиков событий, такие как onclick, отражают HTML-атрибуты с теми же именами, что позволяет определять обработчики событий, помещая JavaScript-код в HTML-атрибуты. Например:

Обратите внимание на атрибут onClick. JavaScript-код, являющийся значением этого атрибута, будет выполняться всякий раз, когда пользователь будет щелкать на кнопке.

Атрибуты обработчиков событий, включенных в разметку HTML, могут содержать одну или несколько JavaScript-инструкций, отделяемых друг от друга точками с запятой. Эти инструкции будут преобразованы интерпретатором в тело функции, которая в свою очередь станет значением соответствующего свойства обработчика события.

Однако обычно в HTML-атрибуты обработчиков событий включаются простые инструкции присваивания или простые вызовы функций, объявленных где-то в другом месте. Это позволяет держать большую часть JavaScript-кода внутри сценариев и ограничивает степень взаимопроникновения JavaScript и HTML-кода. На практике многие веб-разработчики считают плохим стилем использование HTML-атрибутов обработчиков событий и предпочитают отделять содержимое от поведения.

JavaScript в URL

Еще один способ выполнения JavaScript-кода на стороне клиента — включение этого кода в URL-адресе вслед за спецификатором псевдопротокола javascript:. Этот специальный тип протокола обозначает, что тело URL-адреса представляет собою произвольный JavaScript-код, который должен быть выполнен интерпретатором JavaScript. Он интерпретируется как единственная строка, и потому инструкции в ней должны быть отделены друг от друга точками с запятой, а для комментариев следует использовать комбинации символов /* */, а не //.

«Ресурсом», который определяется URL-адресом javascript:, является значение, возвращаемое этим программным кодом, преобразованное в строку. Если программный код возвращает значение undefined, считается, что ресурс не имеет содержимого.

Некоторые браузеры (такие как Firefox) выполняют программный код в URL и используют возвращаемое значение в качестве содержимого нового отображаемого документа. Точно так же, как при переходе по ссылке http:, браузер стирает текущий документ и отображает новое содержимое. Значение, возвращаемое примером выше, не содержит HTML-теги, но если бы они имелись, браузер мог бы отобразить их точно так же, как любой другой HTML-документ, загруженный в браузер.

Другие браузеры (такие как Chrome и Safari) не позволяют URL-адресам, как в примере выше, затирать содержимое документа — они просто игнорируют возвращаемое значение. Однако они поддерживают URL-адреса вида:

Когда загружается такой URL-адрес, браузер выполняет JavaScript-код, но, т.к. он не имеет возвращаемого значения (метод alert() возвращает значение undefined), такие браузеры, как Firefox, не затирают текущий отображаемый документ. (В данном случае URL-адрес javascript: служит той же цели, что и обработчик события onclick. Ссылку выше лучше было бы выразить как обработчик события onclick элемента — элемент в целом должен использоваться только для гиперссылок, которые загружают новые документы.)

Если необходимо гарантировать, что URL-адрес javascript: не затрет документ, можно с помощью оператора void обеспечить принудительный возврат значения undefined:

Без оператора void в этом URL-адресе значение, возвращаемое методом Window.open(), было бы преобразовано в строку и (в некоторых браузерах) текущий документ был бы затерт новым документом.

Подобно HTML-атрибутам обработчиков событий, URL-адреса javascript: являются пережитком раннего периода развития Веб и не должны использоваться в современных HTML-страницах. URL-адреса javascript: могут сослужить полезную службу, если использовать их вне контекста HTML-документов. Если потребуется проверить работу небольшого фрагмента JavaScript-кода, можно ввести URL-адрес javascript: непосредственно в адресную строку браузера. Другое узаконенное применение URL-адресов javascript: — создание закладок в браузерах.

Объекты URL

Встроенный класс URL предоставляет удобный интерфейс для создания и разбора URL-адресов.

Нет сетевых методов, которые требуют именно объект URL , обычные строки вполне подходят. Так что, технически, мы не обязаны использовать URL . Но иногда он может быть весьма удобным.

Создание URL

Синтаксис создания нового объекта URL :

  • url – полный URL-адрес или только путь, если указан второй параметр,
  • base – необязательный «базовый» URL: если указан и аргумент url содержит только путь, то адрес будет создан относительно него (пример ниже).
Читать еще:  Java lang illegalargumentexception malformed

Эти два URL одинаковы:

Можно легко создать новый URL по пути относительно существующего URL-адреса:

Объект URL даёт доступ к компонентам URL, поэтому это отличный способ «разобрать» URL-адрес, например:

Вот шпаргалка по компонентам URL:

  • href это полный URL-адрес, то же самое, что url.toString()
  • protocol – протокол, заканчивается символом двоеточия :
  • search строка параметров, начинается с вопросительного знака ?
  • hash начинается с символа #
  • также есть свойства user и password , если используется HTTP-аутентификация: http://login:password@site.com (не нарисованы сверху, так как редко используются).

Мы можем использовать объект URL в методах fetch или XMLHttpRequest и почти во всех других, где ожидается URL-строка.

Вообще, объект URL можно передавать почти куда угодно вместо строки, так как большинство методов сконвертируют объект в строку, при этом он станет строкой с полным URL-адресом.

SearchParams «?…»

Допустим, мы хотим создать URL-адрес с заданными параметрами, например, https://google.com/search?query=JavaScript .

Мы можем указать их в строке:

…Но параметры должны быть правильно закодированы, чтобы они могли содержать не-латинские буквы, пробелы и т.п. (об этом подробнее далее).

Так что для этого есть свойство url.searchParams – объект типа URLSearchParams.

Он предоставляет удобные методы для работы с параметрами:

  • append(name, value) – добавить параметр по имени,
  • delete(name) – удалить параметр по имени,
  • get(name) – получить параметр по имени,
  • getAll(name) – получить все параметры с одинаковым именем name (такое возможно, например: ?user=John&user=Pete ),
  • has(name) – проверить наличие параметра по имени,
  • set(name, value) – задать/заменить параметр,
  • sort() – отсортировать параметры по имени, используется редко,
  • …и является перебираемым, аналогично Map .

Пример добавления параметров, содержащих пробелы и знаки препинания:

Кодирование

Существует стандарт RFC3986, который определяет список разрешённых и запрещённых символов в URL.

Запрещённые символы, например, нелатинские буквы и пробелы, должны быть закодированы – заменены соответствующими кодами UTF-8 с префиксом % , например: %20 (исторически сложилось так, что пробел в URL-адресе можно также кодировать символом + , но это исключение).

К счастью, объекты URL делают всё это автоматически. Мы просто указываем параметры в обычном, незакодированном, виде, а затем конвертируем URL в строку:

Как видно, слово Тест в пути URL-адреса и буква ъ в параметре закодированы.

URL стал длиннее, так как каждая кириллическая буква представляется двумя байтами в кодировке UTF-8.

Кодирование в строках

Раньше, до того как появились объекты URL , люди использовали для URL-адресов обычные строки.

Сейчас URL часто удобнее, но строки всё ещё можно использовать. Во многих случаях код с ними короче.

Однако, если мы используем строку, то надо самим позаботиться о кодировании специальных символов.

Для этого есть встроенные функции:

  • encodeURI – кодирует URL-адрес целиком.
  • decodeURI – декодирует URL-адрес целиком.
  • encodeURIComponent – кодирует компонент URL, например, параметр, хеш, имя пути и т.п.
  • decodeURIComponent – декодирует компонент URL.

Возникает естественный вопрос: «Какая разница между encodeURIComponent и encodeURI ? Когда использовать одну и другую функцию?»

Это легко понять, если мы посмотрим на URL-адрес, разбитый на компоненты на рисунке выше:

Как мы видим, в URL-адресе разрешены символы : , ? , = , & , # .

…С другой стороны, если взглянуть на один компонент, например, URL-параметр, то в нём такие символы должны быть закодированы, чтобы не поломать форматирование.

  • encodeURI кодирует только символы, полностью запрещённые в URL.
  • encodeURIComponent кодирует эти же символы плюс, в дополнение к ним, символы # , $ , & , + , , , / , : , ; , = , ? и @ .

Так что для URL целиком можно использовать encodeURI :

Вывод ссылки на эран js примеры

Сегодня займемся созданием ссылки в js, оформление ссылки javascript, вывод ссылки javascript , как сделать ссылку на объекте, диве, таблице, картинке!

Ссылки в javascript — есть два понятия для данного словосочетания. Мы будем разбирать ссылку в javascript – и это имеется ввиду – всё, на что можно нажать и результатам этого нажатия будет како-то действие , которое и указано в этом javascript.

Совершать прямое предназначение ссылки — здесь, не будем. потому, что для этого действия у нас есть отдельная страница.

Все способы вывода ссылок в javascript

  1. Вывод сообщения при нажатии на ссылку
  2. Ссылка с выводом на эран с помощью document.write
  3. Вывод ссылки javascript из переменной
  4. Как вывести изображение с ссылкой через js скрипт
    Как вывести изображение с ссылкой через js -> пример №1
    Как вывести изображение с ссылкой через js -> пример №2
  5. Поставить ссылку javascript на ячейку таблицы
  6. Поставить ссылку javascript на строку таблицы
  7. Составные части ссылки адресной строки javascript
    + Получить все содержание ссылки адресной строки javascript
    + Получить из ссылки адресной строки домен javascript
    + Получить из ссылки адресной строки http протокол javascript
    + Получить название домена из адресной строки javascript
    + Получить из ссылки адресной строки путь javascript
    + Получить из ссылки адресной строки путь написания гет запроса javascript
    + как получить # из ссылки javascript

    Вывод сообщения при нажатии на ссылку

    Наверное самое простое, что сразу приходит на ум — это вывод «alert» в ссылке, например вот такая ссылка:

    Нажмите по ссылки и получите результат:

    И код данной ссылки в javascript:

    Привет Мир! Конечно это не единственный вариант, можно повесить onclick на тег ссылки, но рука пропадет при наведении поэтому добавим style=»cursor:pointer;»

    Ссылка с выводом на эран с помощью document.write

    Результат вывода ссылки при помощи javascript document.write:

    Вывод ссылки javascript из переменной

    Третий вариант вывода ссылки сделаем чрез переменную…

    Про данный вариант можно сказать, что вывод ссылки javascript таким вариантом- это модернизация предыдущего способа.

    Помещаем ссылку и текст ссылки в отдельные переменные, а потом собираем ссылку и выводим, опять дже с помощью document.write

    Как вывести изображение с ссылкой через js скрипт

    Что собой представляет тег картинки!? Это:

    Далее у нас есть несколько вариантов. обернуть картинку в ссылку, либо повесить ссылку на картинку.

    Вариант №1 Ссылка на картинке javascript

    Результат ссылка на картинке при помощи onclick

    Вариант №2 Ссылка на картинке javascript

    Уже выше приведенный код ссылки будем использовать в этом пункте вывода ссылки на картинке.

    Просто соединяем два кода и получаем:

    Результат оборачивания картинки в ссылку javascript:

    Но в этом варианте! Обращаю ваше внимание на то, что под картинкой образовалась подчеркивание — это будет зависеть от прописанного поведения ссылки на сайте.

    Поставить ссылку javascript на ячейку таблицы

    Для того,, чтобы поставить на ячейку таблицы ссылку — надо сперва создать таблицу, она будет состоять из двух столбцов, и на одну из ячеек повесим onclick :

    URL objects

    The built-in URL class provides a convenient interface for creating and parsing URLs.

    There are no networking methods that require exactly a URL object, strings are good enough. So technically we don’t have to use URL . But sometimes it can be really helpful.

    Creating a URL

    The syntax to create a new URL object:

    • url – the full URL or only path (if base is set, see below),
    • base – an optional base URL: if set and url argument has only path, then the URL is generated relative to base .

    These two URLs are same:

    We can easily create a new URL based on the path relative to an existing URL:

    The URL object immediately allows us to access its components, so it’s a nice way to parse the url, e.g.:

    Here’s the cheatsheet for URL components:

    • href is the full url, same as url.toString()
    • protocol ends with the colon character :
    • search – a string of parameters, starts with the question mark ?
    • hash starts with the hash character #
    • there may be also user and password properties if HTTP authentication is present: http://login:password@site.com (not painted above, rarely used).

    We can use a URL object in fetch or XMLHttpRequest , almost everywhere where a URL-string is expected.

    Generally, URL object can be passed to any method instead of a string, as most method will perform the string conversion, that turns a URL object into a string with full URL.

    SearchParams “?…”

    Let’s say we want to create a url with given search params, for instance, https://google.com/search?query=JavaScript .

    We can provide them in the URL string:

    …But parameters need to be encoded if they contain spaces, non-latin letters, etc (more about that below).

    So there’s URL property for that: url.searchParams , an object of type URLSearchParams.

    It provides convenient methods for search parameters:

    • append(name, value) – add the parameter by name ,
    • delete(name) – remove the parameter by name ,
    • get(name) – get the parameter by name ,
    • getAll(name) – get all parameters with the same name (that’s possible, e.g. ?user=John&user=Pete ),
    • has(name) – check for the existance of the parameter by name ,
    • set(name, value) – set/replace the parameter,
    • sort() – sort parameters by name, rarely needed,
    • …and it’s also iterable, similar to Map .

    An example with parameters that contain spaces and punctuation marks:

    Encoding

    There’s a standard RFC3986 that defines which characters are allowed in URLs and which are not.

    Those that are not allowed, must be encoded, for instance non-latin letters and spaces – replaced with their UTF-8 codes, prefixed by % , such as %20 (a space can be encoded by + , for historical reasons, but that’s an exception).

    The good news is that URL objects handle all that automatically. We just supply all parameters unencoded, and then convert the URL to string:

    As you can see, both Тест in the url path and ъ in the parameter are encoded.

    The URL became longer, because each cyrillic letter is represented with two bytes in UTF-8, so there are two %.. entities.

    Encoding strings

    In old times, before URL objects appeared, people used strings for URLs.

    As of now, URL objects are often more convenient, but strings can still be used as well. In many cases using a string makes the code shorter.

    If we use a string though, we need to encode/decode special characters manually.

    There are built-in functions for that:

    • encodeURI – encodes URL as a whole.
    • decodeURI – decodes it back.
    • encodeURIComponent – encodes a URL component, such as a search parameter, or a hash, or a pathname.
    • decodeURIComponent – decodes it back.

    A natural question is: “What’s the difference between encodeURIComponent and encodeURI ? When we should use either?”

    That’s easy to understand if we look at the URL, that’s split into components in the picture above:

    As we can see, characters such as : , ? , = , & , # are allowed in URL.

    …On the other hand, if we look at a single URL component, such as a search parameter, these characters must be encoded, not to break the formatting.

    • encodeURI encodes only characters that are totally forbidden in URL.
    • encodeURIComponent encodes same characters, and, in addition to them, characters # , $ , & , + , , , / , : , ; , = , ? and @ .

    javascript внутри url

    Где-то я когда-то видел URL в котором прямо внутри был javascript и это даже работало, но нигде не могу найти.. Как это делается?

    Re: javascript внутри url

    I mean был какой-то url www.blabla.com и к нему прилагалась ссылка в стиле www.blabla.com. do_smth_here_in_javascript и теперь кликая в такую ссылку открывалось www.blabla.com и выполнялось do_smth_here_in_javascript на элементах www.blabla.com.

    Re: javascript внутри url

    Еще более конкретно:

    Например я хочу сделать как-то так:

    И идея такая что кликая в такую ссылку открывается google.com с введенным в поле поиска текстом «bla».

    Как такое сделать?

    В яваскрипте я вообще ноль. 🙁

    Re: javascript внутри url

    Если ты не в состоянии сформулировать какое «такое» делалось в твоём примере, то сформулируй чего тебе самому-то надо. Почему бы не сделать это традиционно, сервер-сайдно?

    Re: javascript внутри url

    Ну я же формулирую.

    Я хочу открыть на своей странице иметь линк на http://www.google.com который откроет этот самый http://www.google.com (все равно в том же самом окне или в новом) и впишет в поле поиска например «javascript rulz». Другими словами мой линк это будет линк на google с вписанной в поле поиска фразой.

    В реальной задаче не гугл, но принцип тот же.

    Re: javascript внутри url

    Re: javascript внутри url

    Открыть гугл выходит одним из двух способов:

    А как теперь вписать в поле поиска «javascript rulz»?

    Я ничего противозаконного не делаю, у меня есть login/password юзера, я от его имени сделал сервер-сайдно все что надо было сделать и даю ему линк на сделанное, теперь я просто хочу чтобы он в этом самом сделанном не вводил user/pass, а просто тыркнул в login, потому что я ему линк на сделанное дам с уже заполненными полями user/pass.

    Re: javascript внутри url

    > Я хочу открыть на своей странице иметь линк на http://www.google.com который откроет этот самый http.

    Ну так и сделай линк на скрипт, который будет редиректить запросы туда. А на случай, если вдруг клиент доверчивый попался, сделай обработчик onclick, делающий то же самое. А что бы выполнять какой-то код из УРЛ — такого ни в одном стандарте нет и непонятно нафига так делать вообще.

    Re: javascript внутри url

    > как теперь вписать в поле поиска «javascript rulz»?

    Re: javascript внутри url

    > Ну так и сделай линк на скрипт, который будет редиректить
    > запросы туда.
    Этакое прокси (типо как будто я гугл)? Не хочу. Я хочу просто заполнить user/pass, пусть юзер сам тыкает в логин и больше я его комп своими грязными руками тыкать не хочу. Я вообще его комп своими грязными руками тыкать не хочу. Просто хочу ему дать линк с заполненными двумя полями.

    > А на случай, если вдруг клиент доверчивый попался, сделай
    > обработчик onclick, делающий то же самое.
    А можно подробнее? Не в смысле код, а в смысле не понял идеи.

    Re: javascript внутри url

    Блин. Я не хочу ничего делать, выполнять какие-бы то ни было queries. Я хочу просто вписать два input’а! Юзер пусть кликает или не кликает и изменяет эти input’ы себе как ему нравится. Я за него их заполнил, дальше уже он сам.

    Re: javascript внутри url

    А это как раз к Гуглу 🙂

    Re: javascript внутри url

    Если инпуты передаются гетом — то подойдёт всё, что описано выше. Если постом — то разве что проксить.

    Re: javascript внутри url

    > Если инпуты передаются гетом — то подойдёт всё, что описано выше.
    Я не хочу посылать инпуты (ни гетом ни постом).

    Я хочу их просто яваскриптом заполнить. Юзер тиснет в сабмит и их вышлет.

    Я реально видел похожее поведение — я отдавал кому-то какой-то html и этому кому-то не нравился мой html — этот кто-то просто взял и сложил этакий линк который открыл мой html и поменять немного внешний вид в нем. И все это сделал одним огромным линком.

    Re: javascript внутри url

    >А что бы выполнять какой-то код из УРЛ — такого ни в одном стандарте нет

    да ну? протокол javascript:, следует полагать, не существует?

    Re: javascript внутри url

    скажи честно: ты хочешь, чтобы за тебя написали код. потому что как именно исполнить javascript из href, я уже показал. дельше надо только сам скрипт написать.

    Re: javascript внутри url

    Просто я вообще в яваскрипте ноль.

    Хватило бы шаблона.. Например так работает довольно неплохо:

    javascript:window.open(‘http://google.com’; window.onload=alert(‘oh boy’);

    А вот так ерунда (alert выполняется до загрузки гугла:

    javascript:document.location.href=’http://google.com’; window.onload=alert(‘oh boy’);

    Насчет заполнить два инпута я бы уже разобрался.

    Re: javascript внутри url

    естественно, до. загрузка страницы — процесс асинхронный. если тебе надо именно заменять текущую страницу, а не открывать новую вкладку/окно… лучше забудь об этой идее.

    Re: javascript внутри url

    На странице явно имеет место form, тем не менее alert показывает 0. Почему?

    Re: javascript внутри url

    потому что ты не в курсе, как это всё работает. кто тебе сказал, что оно успело догрузиццо? я же написал: процесс асинхронный. более того: загрузка вообще не обязана начинаться, пока твой скрипт не отработал. в итоге — ты открыл пустое окно. поискал в нём форму. не нашёл (что логично). показал алерт. поехала загрузка. грок?

    Re: javascript внутри url

    > более того: загрузка вообще не обязана начинаться, пока твой скрипт
    > не отработал
    Если не обязана, то правильно сделать то что я хочу вообще нельзя (в смысле без хаков и краков). Но я помню как сегодня как кто-то линком изменил внешний вид моего html’а. Или это и были хаки и краки? Если да то Б-г с ним, просто зачем голову морочить?

    PS Что любопытно такой тест не работает:

    Re: javascript внутри url

    >Но я помню как сегодня как кто-то линком изменил внешний вид моего html’а. Или это и были хаки и краки?

    а кто его знает? линка со страницей-то не показано.

    >Что любопытно такой тест не работает:

    что любопытно — отчего все пихают в setTimeout() идиотский eval()? это и тормозно, и неверно.

    Re: javascript внутри url

    А так почему не але (тоже уже на самом деле чисто поржать):

    Вообще из предыдуших ответов можно сделать вывод что правильный способ это сделать POST userid/login сервер-сайд, всосать ответ и скормить юзеру ответ, позаменяв в нем relative links на absolute links.

    Только это на самом деле вообще не способ, по той простой причине что сессии например сервер-сайд curl’а и сессии user’а это две разные вещи, а все вещи там где мне все это нужно передаются в параметрах сессии.

    Re: javascript внутри url

    >Вообще из предыдуших ответов можно сделать вывод что правильный способ это сделать POST userid/login сервер-сайд, всосать ответ и скормить юзеру ответ, позаменяв в нем relative links на absolute links.

    правильный способ — не делать извратов. всё остальное — извраты. не предусмотрено в *html механизмов взаимоействия с другими сайтами. что, в принципе, верно.

    >А так почему не але (тоже уже на самом деле чисто поржать):

    а потому что security restrictions. скрипт из одного домена не имеет права ни читать, ни писать в переменные скрипта с другого домена.

    Re: javascript внутри url

    > а потому что security restrictions. скрипт из одного домена не имеет
    > права ни читать, ни писать в переменные скрипта с другого домена.
    Ясно. Двойная просьба о пароль, раз чтобы мой шыт сделал свое дело, два чтобы посмотреть что же такое сделал мой шыт: resolved as not fixable.

    Но блин как-то же товарищ это делал с моим html’ом. Так интереса ради.. Почему я тогда был такой тупой и не проанализировал. Спросил товарища, может как проснется — вспомнит, правда было это X лет назад.. 🙁

    Re: javascript внутри url

    >правда было это X лет назад

    это одно из клчючевых. security restrictions со временем выросли. плюс — на самом деле способов есть очень много. я ж сказал — без конкретного показа можно выдумывать их до посинения. например, запастить букмарклет в адресбар на открытой странице — вполне можно, так букмарклеты и работают.

    Re: javascript внутри url

    > resolved as not fixable.
    Ну то есть совет с proxy это конечно решение, но ну его в пень. Это мое прокси должно будет вечно проксить а не только один раз (потому что сессия) пока юзер не уйдет с сайта на который имел неосторожность через мой шыт зайти. И вообще это какой-то анальный секс.

    Re: javascript внутри url

    Всю функциональность отрезал — демострирует только саму идею (надо вводить два раза тот же userid/password).

    Кстати, что любопытно из этих двух форм:

    получаем разные результаты, но любопытно не это а то каким образом: не из реферера, не из hidden полей, а из параметров сессии и того что было открыто как предыдущее.

    Чтобы в этом удостовериться можно:

    A: Открыть 2, следом в другом табе 1, следом ввести test222/test222
    B. Открыть 2, следом ввести test222/test222

    Какой-то черезжопный способ у ребят.

    Про bookmarklet спасибо — читаю.

    Re: javascript внутри url

    я про тпоказ того урла, что модифицировал твой html.

    >Кстати, что любопытно из этих двух форм:

    домен тот же самый → видно кукиши.

    Re: javascript внутри url

    > домен тот же самый → видно кукиши.
    Кукиши, да. Но одноразовые, в пределах сессии. И JSESSIONID еще какой-то.

    Сам подход какой-то черезжопный. Получается что то что я делают зависит от того в какой последовательности я это делаю. А если я одновременно хотел бы делать две разные вещи то что.

Ссылка на основную публикацию
Adblock
detector