Как можно настроить таргетинг на все элементы div любой веб-страницы, но различать их в javascript? - PullRequest
0 голосов
/ 07 июня 2010

Поэтому я пытаюсь создать расширение в Chrome (прототип для проекта, которым я занимаюсь), которое нацелено на все теги <div> любой веб-страницы, скрывает их или, скорее, не отображает их, пока пользователь щелкает мышью (подробнее объясняется ниже). Поэтому ввод URL-адреса в браузере приводит к появлению белой страницы. Человек щелкает, и появляется первый <div> (вероятно, заголовок мачты или меню). Пользователь нажимает снова, и появляется второй <div>.

Я дошел до того, что могу скрыть или показать все <div> (очевидная легкая часть), но я не уверен, как настроить таргетинг на каждого из них, поскольку каждый сайт имеет разные идентификаторы для них, все еще используя <div> тег. Это то, что мне нужно больше всего помочь.

Это часть грандиозной операции, которая называется Web Crank. Это просто физическая кривая, которая контролирует скорость загрузки веб-страницы. Каждый раз, когда вы делаете один полный оборот кривошипа, загружается один раздел (первый <div>) веб-страницы. Чем быстрее вы идете, тем быстрее загружается страница.

Надеюсь, это достаточно ясно. Я новичок, когда дело доходит до этого, но я немного занимался программированием в прошлом, и это не такая уж большая проблема.

Спасибо за вашу помощь!

Ответы [ 3 ]

3 голосов
/ 07 июня 2010

Используя только DOM без каких-либо библиотек, повторите это:

document.getElementsByTagName("div")

возвращает все <div> s на странице.Чтобы перебрать их, используйте цикл for:

var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; i++) {
  /* stuff */
}

В jQuery (который вам, вероятно, не следует использовать в плагине Chrome ...):

$("div").each(function(i) { /* whatever */ });

Что вы в основномхочу сделать, это перебрать все <div> s и спрятать их все, а затем, когда вы провернете провал, вызовите этот итератор, который проходит и добавляет вещи обратно. Вероятно, я бы создал очередь FIFO ( как это? ) элементов, которые должны быть запущены, когда вы их скрываете, а затем, когда запускается операция запуска (как бы вы это ни делали), начинайте вытаскивать предметы из очереди и показывать их снова.

Как побочный вопрос, почему <div> s, а не только все элементы уровня блока?Вы, вероятно, хотите найти элементы <div>, <p>, <blockquote>, <ol>, <ul>, <dl> и <table>.

0 голосов
/ 07 июня 2010

Если вы можете получить каждый div на странице, просто вставьте их в массив, и теперь вы можете проиндексировать их.

0 голосов
/ 07 июня 2010

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

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