Как клонировать гугл хром

Обновлено: 07.07.2024

Я пытаюсь клонировать входной элемент типа="file". В этом входном элементе есть событие onchange. Метод clone вызывается в функции, которая вызывается из события onchange.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я клонирую вход загрузки файла, событие onchange запускается снова. Это происходит только в Chrome, но работает так, как задумано в IE.

Я создал fiddle, дублирующий эту проблему. Вот fiddle.

Как я могу клонировать этот файл загрузки ввода без запуска события onchange снова и снова? Я использую jQuery 1.7.1. На самом деле это упрощенный фрагмент из ajaxfileuploader.js :

UPDATE: fiddle я думаю, что это достижение того, что мне нужно , основываясь на ответе @MichaelAngstadt. Хотя все еще тестирую.

Это то, что, кажется, работает для меня в расширении ajaxfileuploader.js:

Я пытаюсь реализовать систему перетаскивания в angularjs. Я хочу, чтобы перетаскиваемый объект был клонирован при запуске перетаскивания. Однако я понятия не имею, как клонировать элемент вместе с его областью действия и связанным контроллером в angularjs? Есть предложения?

Я знаю, что EventDispatcher способен запускать события между объектами, но как насчет глобального события, когда любой объект в иерархии может слушать и реагировать? Есть ли рекомендуемый способ сделать это правильно в EaselJS, и является ли это хорошей идеей в целом?

Вы всегда можете сохранить события во временном объекте и повторно прикрепить их после клонирования, например:

Таким образом, oldEl на самом деле не имеет событий, определенных для клонирования. В противном случае вы будете бороться с некоторыми фундаментальными функциональными возможностями в отношении того, как работают & и DOM.

Вы пробовали клонировать объект, используя вместо этого $.extend .

Похоже, проблема связана с атрибутом onchange . Вы можете удалить/сбросить атрибут перед клонированием. После клонирования событие change запускается снова, и это приводит к бесконечному циклу.

Вы загружаете jQuery, почему бы не использовать его методы? Если вы используете атрибут onchange для хранения обработчика событий, вместо этого вы можете использовать метод делегирования событий.

Основываясь на ответе от @undefined (который работает) Я бы предложил на самом деле сделать событие изменения делегированным событием для объекта контейнера. В противном случае вы получите один вход (старый), который клонирует себя при изменении, и другой (новый), который этого не делает.

Рабочий fiddle (я также сбросил значение нового ввода на null)

Примечание: для меня это все еще сбой Firefox. Не знаю, почему, но, возможно, это мой FF - событие изменения не сработало (в других браузерах) в момент сбоя FF.

Объяснение Я думаю, что здесь происходит то, что jQuery (по умолчанию) не клонирует события при клонировании элемента. Однако он клонирует атрибуты. Таким образом, атрибут onchange в элементе клонируется и создает событие изменения в клонированном элементе, которое по какой-то причине затем называется запуском бесконечного цикла. Не уверен, почему .clone() запускает события изменения

События, прикрепленные через .on() к объекту, не клонируются - так что никаких дополнительных элементов, но и событий на них тоже нет. Делая событие делегированным событием в контейнере, мы избегаем проблемы (поскольку, когда событие изменения запускается во время клонирования, новый элемент еще не является частью страницы и поэтому не запускает делегированное событие), но все еще имеем функциональность для нового объекта (как только мы вставляем его на страницу).

Вам нужна лучшая обработка IDs, если вы хотите получить более двух таких входных данных.

Я пытаюсь клонировать элемент html div с классом .age-sex-details и событиями, связанными с классами .age-sex-remove и .age-sex-add, показанными ниже, используя функцию jquery clone . Я могу клонировать div, события, упомянутые выше, и данные, введенные в поля ввода, используя функцию.

Тебе здесь не нужно ничего особенного. Если вы прикрепите событие onchange с jQuery/javascript вместо HTML, то clone( ) создаст только одну копию, как это необходимо.

P.S fileUpLoad , правда? Эта подлая заглавная буква " Л " вызвала у меня некоторые проблемы.

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

Я пытаюсь разработать расширение chrome. Несколько лет назад я разработал несколько расширений firefox. В firefox можно было автоматически запускать расширение страницы и изменять ее содержимое.

Я клонирую textarea на странице, но клонированный элемент не имеет никакого события первичного элемента, есть ли способ клонировать все события в клонированном элементе? var dupNode =.

Я пытаюсь реализовать систему перетаскивания в angularjs. Я хочу, чтобы перетаскиваемый объект был клонирован при запуске перетаскивания. Однако я понятия не имею, как клонировать элемент вместе с.

Я знаю, что EventDispatcher способен запускать события между объектами, но как насчет глобального события, когда любой объект в иерархии может слушать и реагировать? Есть ли рекомендуемый способ.

Я пытаюсь клонировать элемент html div с классом .age-sex-details и событиями, связанными с классами .age-sex-remove и .age-sex-add, показанными ниже, используя функцию jquery clone . Я могу.

Как мне неглубоко клонировать репозиторий git, чтобы мой клон содержал только 1 элемент истории и начинался с определенной ветви? Я знаю, как сделать мелкий клон: git clone --depth 1.

Я пытаюсь сделать то, чего никогда раньше не делал: клонировать репозиторий другого пользователя (codeforamerica) и запускать его локально на своем компьютере с намерением внести в него свои.

В jquery мы можем клонировать элемент и все его события с помощью метода clone() . Пример: $(.element).clone(true); Как мы можем сделать то же самое с native Javascript? Я обновляю свой пост.

У меня есть директива, которая клонирует свой элемент, передает клон через $compile(myClone)(scope); и добавляет его к DOM. Если исходный элемент трансклинировал содержимое, например: This is some.

Разработчики браузеров стремительно копируют функции у конкурентов, и с каждым обновлением разница между программами для интернет-серфинга продолжает уменьшаться. В качестве примера можно привести строку состояния: совсем недавно она присутствовала во всех веб-обозревателях, однако после того как от нее отказались в Chrome, быстро исчезла и из других приложений. То же самое случилось и с вкладками, которые в большинстве браузеров теперь отображаются в самом верху окна, и с системным меню, от него избавились в пользу более компактного списка.

Изначально планировалось написать статью о четырех браузерах, но довольно быстро стало понятно, что лишь два поддаются серьезной переработке, в то время как в других подобной гибкости в настройке нет. Основная проблема с «перепиливанием» Internet Explorer и Opera связана с тем, что для них существует ограниченное количество расширений. У Opera есть и еще одна причина: ее интерфейс в отличие от Chrome и Firefox нельзя сравнить с чистым листом бумаги, куда можно вносить любые изменения. Дизайн этого веб-обозревателя не рассчитан на установку большого количества дополнений, влияющих на внешний вид программы. Вероятно, поэтому они практически и не выпускаются. Учитывая вышесказанное, в статье будет детально рассмотрена лишь модификация Chrome и Firefox.

Переход на другой браузер

Если желание перейти на другой браузер преодолело неохоту привыкать к чему-то новому, то напоследок необходимо захватить с собой несколько полезных вещей из старого веб-обозревателя, и в первую очередь, разумеется, закладки. Их можно экспортировать в HTML-файл, а потом импортировать в выбранный браузер. Но правильнее будет перенести «Избранное» с помощью Xmarks, тем более что сейчас этот плагин поддерживает все популярные обозреватели. Для перемещения паролей рекомендуем LastPass, этот же плагин следует отныне использовать и для хранения данных из заполненных форм, чтобы в будущем, при намерении снова поменять браузер, эта информация не потерялась.

Универсальные плагины

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

Sumatra PDF

В Google Chrome встроен просмотрщик PDF, который позволяет открывать этот тип документов прямо в обозревателе. Sumatra PDF добавляет аналогичный режим в Opera и Firefox, а также при необходимости заменяет уже имеющийся PDF-движок в Chrome. Еще PDF-файлы в браузерах можно просматривать, установив Adobe Acrobat.

Сжатие трафика

Safari Reader

Эта возможность, получившая широкую известность после выхода Safari 5, для облегчения чтения больших статей позволяет переформатировать страницу сайта, увеличив шрифт и убрав лишние изображения. Поскольку Safari Reader основан на открытом коде проекта Readability, то аналогичные плагины доступны и для других браузеров.

Chrome

В скобках возле расширений указан веб-обозреватель, в котором реализована подобная функция. Если скобки пусты, значит, такая опция доступна сразу в нескольких браузерах.

Клонирование браузеров копируем функции друг у друга

Firefox

После войны видеоформатов (vp8/WebM vs. H.264) большинство браузеров сделали свой выбор в пользу лишь одного стандарта. В Firefox поддержали WebM, однако желающие проигрывать H.264 могут использовать WildFox. Изначально это была отдельная сборка Firefox с интегрированной поддержкой H.264, однако сейчас выпущен и плагин, устанавливаемый в обычный Firefox. Другим вариантом является инсталляция Windows Media Player Firefox Plug-in от Microsoft (доступен только в Windows 7).

Я пытаюсь клонировать входной элемент типа="file". В этом входном элементе есть событие onchange. Метод clone вызывается в функции, которая вызывается из события onchange.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я клонирую вход загрузки файла, событие onchange запускается снова. Это происходит только в Chrome, но работает так, как задумано в IE.

Я создал fiddle, дублирующий эту проблему. Вот fiddle.

Как я могу клонировать этот файл загрузки ввода без запуска события onchange снова и снова? Я использую jQuery 1.7.1. На самом деле это упрощенный фрагмент из ajaxfileuploader.js :

UPDATE: fiddle я думаю, что это достижение того, что мне нужно , основываясь на ответе @MichaelAngstadt. Хотя все еще тестирую.

Это то, что, кажется, работает для меня в расширении ajaxfileuploader.js:

Я пытаюсь реализовать систему перетаскивания в angularjs. Я хочу, чтобы перетаскиваемый объект был клонирован при запуске перетаскивания. Однако я понятия не имею, как клонировать элемент вместе с его областью действия и связанным контроллером в angularjs? Есть предложения?

Я знаю, что EventDispatcher способен запускать события между объектами, но как насчет глобального события, когда любой объект в иерархии может слушать и реагировать? Есть ли рекомендуемый способ сделать это правильно в EaselJS, и является ли это хорошей идеей в целом?

Вы всегда можете сохранить события во временном объекте и повторно прикрепить их после клонирования, например:

Таким образом, oldEl на самом деле не имеет событий, определенных для клонирования. В противном случае вы будете бороться с некоторыми фундаментальными функциональными возможностями в отношении того, как работают & и DOM.

Вы пробовали клонировать объект, используя вместо этого $.extend .

Похоже, проблема связана с атрибутом onchange . Вы можете удалить/сбросить атрибут перед клонированием. После клонирования событие change запускается снова, и это приводит к бесконечному циклу.

Вы загружаете jQuery, почему бы не использовать его методы? Если вы используете атрибут onchange для хранения обработчика событий, вместо этого вы можете использовать метод делегирования событий.

Основываясь на ответе от @undefined (который работает) Я бы предложил на самом деле сделать событие изменения делегированным событием для объекта контейнера. В противном случае вы получите один вход (старый), который клонирует себя при изменении, и другой (новый), который этого не делает.

Рабочий fiddle (я также сбросил значение нового ввода на null)

Примечание: для меня это все еще сбой Firefox. Не знаю, почему, но, возможно, это мой FF - событие изменения не сработало (в других браузерах) в момент сбоя FF.

Объяснение Я думаю, что здесь происходит то, что jQuery (по умолчанию) не клонирует события при клонировании элемента. Однако он клонирует атрибуты. Таким образом, атрибут onchange в элементе клонируется и создает событие изменения в клонированном элементе, которое по какой-то причине затем называется запуском бесконечного цикла. Не уверен, почему .clone() запускает события изменения

События, прикрепленные через .on() к объекту, не клонируются - так что никаких дополнительных элементов, но и событий на них тоже нет. Делая событие делегированным событием в контейнере, мы избегаем проблемы (поскольку, когда событие изменения запускается во время клонирования, новый элемент еще не является частью страницы и поэтому не запускает делегированное событие), но все еще имеем функциональность для нового объекта (как только мы вставляем его на страницу).

Вам нужна лучшая обработка IDs, если вы хотите получить более двух таких входных данных.

Я пытаюсь клонировать элемент html div с классом .age-sex-details и событиями, связанными с классами .age-sex-remove и .age-sex-add, показанными ниже, используя функцию jquery clone . Я могу клонировать div, события, упомянутые выше, и данные, введенные в поля ввода, используя функцию.

Тебе здесь не нужно ничего особенного. Если вы прикрепите событие onchange с jQuery/javascript вместо HTML, то clone( ) создаст только одну копию, как это необходимо.

P.S fileUpLoad , правда? Эта подлая заглавная буква " Л " вызвала у меня некоторые проблемы.

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

Я пытаюсь разработать расширение chrome. Несколько лет назад я разработал несколько расширений firefox. В firefox можно было автоматически запускать расширение страницы и изменять ее содержимое.

Я клонирую textarea на странице, но клонированный элемент не имеет никакого события первичного элемента, есть ли способ клонировать все события в клонированном элементе? var dupNode =.

Я пытаюсь реализовать систему перетаскивания в angularjs. Я хочу, чтобы перетаскиваемый объект был клонирован при запуске перетаскивания. Однако я понятия не имею, как клонировать элемент вместе с.

Я знаю, что EventDispatcher способен запускать события между объектами, но как насчет глобального события, когда любой объект в иерархии может слушать и реагировать? Есть ли рекомендуемый способ.

Я пытаюсь клонировать элемент html div с классом .age-sex-details и событиями, связанными с классами .age-sex-remove и .age-sex-add, показанными ниже, используя функцию jquery clone . Я могу.

Как мне неглубоко клонировать репозиторий git, чтобы мой клон содержал только 1 элемент истории и начинался с определенной ветви? Я знаю, как сделать мелкий клон: git clone --depth 1.

Я пытаюсь сделать то, чего никогда раньше не делал: клонировать репозиторий другого пользователя (codeforamerica) и запускать его локально на своем компьютере с намерением внести в него свои.

В jquery мы можем клонировать элемент и все его события с помощью метода clone() . Пример: $(.element).clone(true); Как мы можем сделать то же самое с native Javascript? Я обновляю свой пост.

У меня есть директива, которая клонирует свой элемент, передает клон через $compile(myClone)(scope); и добавляет его к DOM. Если исходный элемент трансклинировал содержимое, например: This is some.

Существует несколько вариантов персонализировать браузеры на разных устройствах: экспорт данных из учетной записи Google, перенос профиля на другой компьютер с и без синхронизации. У каждого варианта свои особенности и преимущества.

Какие данные в первую очередь Вам необходимо перенести?
  • 1 Перенос настроек
    • 1.1 Где хранятся (Login Data, Bookmarks.bak)
    • 1.2 Как сохранить
      • 1.2.1 Включение “возможности” сохранения в chrome://flags/
      • 1.2.2 Экспорт/импорт
        • 1.2.2.1 Паролей
        • 1.2.2.2 Закладок
        • 2.1 Где его хранит браузер: как найти папку с профилем
          • 2.1.1 Другие полезные директории (Login Data, Cookies, Bookmarks.bak)
          • 3.1 Включение синхронизации
          • 3.2 Настройки элементов синхронизации
          • 3.3 “Получение” данных на другом ПК: авторизация и включение синхронизации

          Перенос настроек

          Закладки и пароли хранятся в файлах “Bookmarks” и “Login”. Они расположены в системной директории “Хром”, а поскольку в данном каталоге содержится служебная информация,то они скрыты. Но сделав копию файла, при случайном удалении, смене браузера Chrome или переходе на мобильную версию, можно легко восстановить профиль.

          • О способах перенести настройки (в том числе: закладки и вкладки) Хрома на другой компьютер иными способами мы уже писали.
          • А также приходит много вопросов связанных с проблемами воспроизведения аудио в браузере после переустановки ОС. Почему такое происходит и как включить звук на ПК или телефоне рассказываю в отдельном материале сугубо на эту тему.

          Где хранятся (Login Data, Bookmarks.bak)

          Во время инсталляции браузера на диске, где расположена операционная система, создается папка в разделе “Пользователи” и, чтобы ее увидеть, необходимо разрешить показ скрытых элементов, а для этого требуется:

          • Открыть проводник.
          • В верхнем меню найти вкладку “Вид”.
          • В открывшемся подменю возле пункта “Скрытые элементы” поставить галочку.

          Скрытые файлы и папки в Windows 10

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

          В каталоге “Пользователи” появятся скрытые элементы, среди которых необходимо выбрать “AppData” — “Local” — “Google” — “Chrome” — “User Data” — "Default”. Если на компьютере используется несколько профилей, вместо User следует выбрать тот, который принадлежит пользователю. Именно в каталоге “Default”, среди системных, располагаются файлы с закладками, паролями.


          Кроме основного документа, содержащего список сохраненных сайтов, в папке есть “Bookmarks.bak” — это бэкап-копия с информацией о времени создания закладок. Он поможет восстановить ссылки при случайном удалении — для этого достаточно переименовать “Bookmark.bak”, убрав расширение bak.

          Как сохранить

          Включение “возможности” сохранения в chrome://flags/

          Во вкладке chrome://flags/ расположены дополнительные функции браузера, способные оптимизировать работу. Большинство представленных опций экспериментальные, поэтому они недоступны в стандартных настройках. Среди возможностей: автоматическое сохранение паролей для разных пользователей, импорт с других браузеров или операционных систем.

          Чтобы попасть в меню экспериментальных настроек достаточно в строке поиска ввести chrome://flags/. На открывшейся странице в графе “Search flags” ввести “Bookmarks”, “Password” и “Settings” по очереди, изменить статус с “Default” на “Enabled”.


          В большинстве случаев эту настройку необходимо сделать только для паролей.

          Экспорт/импорт

          Передача системной информации осуществляется в HTML-файле.

          Паролей

          Для загрузки/выгрузки базы данных, достаточно:

          • В строке ввести chrome://settings/passwords.
          • Справа от “Сохраненные пароли” кликнуть на пиктограмму “Настройки”.
          • Далее, нажать “Экспорт” и выбрать директорию, куда следует сохранить документ.
          • Для импорта — второй вариант из списка. Указать место хранения, ранее созданного файла с паролями.


          Если у кого-либо будет доступ к файлу, то человек сможет увидеть Ваши пароли. Для защиты от несанкционированного экспорта, перед созданием документа, система потребует ввести пароль от Windows-аккаунта.

          Закладок

          Экспорт/импорт сохраненных ссылок на любимые сайты осуществляется по алгоритму:

          • Справа вверху угла кликнуть “Настройки” (три точки).
          • Выбрать “Закладки” — “Диспетчер закладок” (для быстрого доступа можно одновременно нажать “Ctrl+Shift+O”).
          • Нажать “Настройки” справа, но уже ниже.
          • Выбрать “”Импортировать” или “Экспорт”.
          • Указать путь для записи на диск/флешку/облако или загрузки файла.
          • Дополнительная информации об экспорте и импорте закладок в Гугл Хром в нашей отдельной статье.

          Профиль в Хроме

          Вся системная информация, необходимая для работы с браузером Chrome, храниться в Гугл-профиле. Если авторизоваться под своей учетной записью, то все настройки автоматически будут привязаны к аккаунту.

          Где его хранит браузер: как найти папку с профилем

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

          • Windows: C:\Users\имя пользователя\AppData\Local\Google\Chrome\User Data\Default;
          • Линукс: /home/имя пользователя/.config/google-chrome/default;
          • МакОС: Users/user name/Library/Application Support/Google/Chrome/Default.

          Другие полезные директории (Login Data, Cookies, Bookmarks.bak)

          В папке “Default” расположены файлы, копирование которых поможет восстановить пользовательские установки:

          • “Login Data” — хранятся закодированные пароли.
          • “Cookies” — конфиденциальная информация о посещаемых веб-страницах, действиях на них.
          • “Bookmarks.bak” — резервная копия файла с закладками, где фиксируется время последних изменений.

          Сохраняем, а потом переносим на новый ПК или предустановленную ОС

          Так как вся информация находится в папке “Default”, то для переноса необходимо:

          • Открыть C:\Users\User\AppData\Local\Google\Chrome\Application.
          • Скопировать папку “Default” на внешний накопитель или в облако.
          • На новом устройстве или после переустановки ОС скопировать директорию (в контекстном меню «Копировать» или CTRL+C) в буфер обмена.
          • Перейти в папку юзера Гугл Хром по умолчанию — “Default” по адресу из первого пункта на новом ПК или в только установленной ОС.
          • Нажать “Вставить” или CTRL+V.
          • Согласиться на замену данных.


          После этого остается зайти в браузер и проверить, правильно ли скопированы пользовательские настройки.

          Синхронизация

          Синхронизация — сервис, позволяющий автоматически экспортировать и импортировать данные «юзера» между устройствами, подключенными к учетной записи Google. Функция помогает мгновенно перейти с мобильного телефона на персональный компьютер, не потеряв информацию из своего браузера. Такой функционал можно рассматривать как хорошую альтернативу сохранить настройки Chrome на другом устройстве в автоматическом режиме.

          Включение синхронизации

          Активация функции возможна в настройках. Для перехода нужно:

          • В браузере Chrome справа в верхнем углу кликнуть “Войти”.
          • Во всплывающем подменю будет показан текущий статус синхронизации.
          • Кликнув по надписи “Синхронизация отключена” попадете в подкатегорию, где напротив имени профиля необходимо нажать “Включить”.


          После этого браузер автоматически изменит настройки в соответствии с предустановленными в Гугл-аккаунте.

          Настройки элементов синхронизации

          По ссылке chrome://settings/syncSetup можно не только включить/выключить синхронизацию, но и установить дополнительные параметры. Здесь доступны несколько разделов:


          • “Управление данными для синхронизации”. Система позволяет выбрать, синхронизировать все параметры или только выбранные. Чтобы ограничить передачу, достаточно выбрать “Настроить синхронизацию” и возле требуемых категорий передвинуть ползунок влево.
          • “Параметры шифрования”. В разделе можно изменить уровень защиты данных, выбрав один из двух вариантов.

          “Получение” данных на другом ПК: авторизация и включение синхронизации

          Чтобы синхронизировать браузеры на нескольких девайсах, требуется:

          • В правом верхнем углу веб-обозревателя кликнуть круглую кнопку с изображением человека.
          • Далее, авторизоваться (при необходимости), введя логин и пароль от Гугл аккаунта.
          • На открывшейся странице выбрать “Включить синхронизацию”.
          • Согласиться с изменением базовых установок на пользовательские.

          Читайте также: