У меня есть событие onerror, которое фиксирует URL-адрес & номера исключения. Теперь мне нужно извлечь HTML-код элемента из номера строки. Как я могу найти DOM и получить контент на этом конкретном номере?Получить элемент, просмотрев его номер строки
ответ
Комментарий Рори почти правый. Это не обязательно невозможно, но получение чего-то, что работает, будет полным взломом. Вот почему:
Когда вы получаете HTML-страницу своей страницы с document.documentElement.outerHTML, вы начинаете работать с проблемами форматирования, потому что разные браузеры обрабатывают пустое пространство по-разному. Рассмотрим следующую страницу:
<html>
<head>
<title>Test Get HTML by Line Number</title>
<script type="text/javascript">
window.onload = function()
{
var lines = document.documentElement.outerHTML;
console.log(lines);
};
</script>
</head>
<body>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sit amet venenatis metus. Sed lobortis semper nisl,
eget mollis nisl rutrum sed. Duis iaculis pharetra eros, eget imperdiet felis aliquet non. Aliquam non viverra eros, vitae
malesuada lacus. Sed ligula sapien, volutpat id diam ac, bibendum imperdiet lacus. Proin turpis lorem, blandit nec pretium
in, lobortis eu erat. Cras ultrices sapien nec quam luctus, nec dictum ante semper.</p>
</body>
</html>
В Chrome и Firefox, результат в Javascript консоли выглядит следующим образом:
<html><head>
<title>Test Get HTML by Line Number</title>
<script type="text/javascript">
window.onload = function()
{
var lines = document.documentElement.outerHTML;
console.log(lines);
};
</script>
</head>
<body>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sit amet venenatis metus. Sed lobortis semper nisl,
eget mollis nisl rutrum sed. Duis iaculis pharetra eros, eget imperdiet felis aliquet non. Aliquam non viverra eros, vitae
malesuada lacus. Sed ligula sapien, volutpat id diam ac, bibendum imperdiet lacus. Proin turpis lorem, blandit nec pretium
in, lobortis eu erat. Cras ultrices sapien nec quam luctus, nec dictum ante semper.</p>
</body></html>
Но в IE, это выглядит следующим образом:
<HTML><HEAD><TITLE>Test Get HTML by Line Number</TITLE>
<SCRIPT type=text/javascript>
window.onload = function()
{
var lines = document.documentElement.outerHTML;
console.log(lines);
};
</SCRIPT>
</HEAD>
<BODY>
<P>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sit amet venenatis metus. Sed lobortis semper nisl, eget mollis nisl rutrum sed. Duis iaculis pharetra eros, eget imperdiet felis aliquet non. Aliquam non viverra eros, vitae malesuada lacus. Sed ligula sapien, volutpat id diam ac, bibendum imperdiet lacus. Proin turpis lorem, blandit nec pretium in, lobortis eu erat. Cras ultrices sapien nec quam luctus, nec dictum ante semper.</P></BODY></HTML>
Я могу думать о чем-то, что может дать вам результаты, которые вы хотите, но Я думаю, что это действительно взломанный; поэтому я гонг, чтобы рекомендовать вам не сделать это, и я не собираюсь вылить тонну усилий в него:
Дубликат всю страницу, с самого начала HTML тега в HTML заканчивающегося тег последнего комментария на странице, как это:
<html> <head> <title>Test Get HTML by Line Number</title> </head> <body> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sit amet venenatis metus. Sed lobortis semper nisl, eget mollis nisl rutrum sed. Duis iaculis pharetra eros, eget imperdiet felis aliquet non. Aliquam non viverra eros, vitae malesuada lacus. Sed ligula sapien, volutpat id diam ac, bibendum imperdiet lacus. Proin turpis lorem, blandit nec pretium in, lobortis eu erat. Cras ultrices sapien nec quam luctus, nec dictum ante semper.</p> </body> </html> <!-- <html> <head> <title>Test Get HTML by Line Number</title> </head> <body> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse sit amet venenatis metus. Sed lobortis semper nisl, eget mollis nisl rutrum sed. Duis iaculis pharetra eros, eget imperdiet felis aliquet non. Aliquam non viverra eros, vitae malesuada lacus. Sed ligula sapien, volutpat id diam ac, bibendum imperdiet lacus. Proin turpis lorem, blandit nec pretium in, lobortis eu erat. Cras ultrices sapien nec quam luctus, nec dictum ante semper.</p> </body> </html> -->
Получить содержимое последнего комментария (это должно помочь: Get text inside HTML comment tag?). Когда я попробовал Fiddle в принятом ответе, он предоставил правильно отформатированные пробелы в Chrome, Firefox и IE.
Разделить результат на новой строки ("\ п")
Посмотрите на свой номер строки, и вуаля! Вот так.
Так, как я уже предупреждал. Это «решение» раздувает ваш HTML и является полным взломом. Но это единственный способ, которым я могу думать, что у него будет шанс сохранить пустое пространство и позволить вам найти точный номер строки, который вы хотите.
Я надеюсь, что это поможет, и, пожалуйста, не кредитуйте меня, если вы закончите использовать хак.
- 1. Найти номер строки, используя первый элемент строки
- 2. Получить элемент номер страницы
- 3. Замените N номер строки. Элемент из строки
- 4. Получить номер из строки
- 5. получить номер обновленной строки
- 6. Как получить номер строки?
- 7. Как получить номер строки?
- 8. Получить номер из строки
- 9. Получить номер строки TextBox
- 10. Получить номер строки рекурсивно
- 11. Получить номер строки файла
- 12. получить номер строки методаDeclaration
- 13. Получить номер из фиктивной строки
- 14. Javascript получить номер из строки?
- 15. Получить номер строки и отображения
- 16. JavaScript получить номер из строки
- 17. Получить текущий номер строки Java
- 18. Получить номер строки std: logic_error
- 19. Получить элемент из строки
- 20. получить номер строки со строкой («Номер строки») из textarea?
- 21. Получить номер строки из preg_match_all()
- 22. получить номер строки случайных записей
- 23. Получить номер строки из CARET
- 24. Как получить номер из строки
- 25. Получить номер строки элемента HTML
- 26. Codemirror - Получить номер строки редактора
- 27. preg_match_all() получить номер из строки
- 28. Получить номер строки данных JSon
- 29. Как получить номер строки CSV
- 30. Получить номер строки из файла
Это будет почти невозможно сделать, поскольку это полностью зависит от интерпретатора в браузере. Большинство встроенных инструментов контроля DOM даже не могут получить правильный номер строки. –
Попробуйте htmlLines = html.split ("\ n"); htmlLines [lineNumber] - это то, что вы ищете где html - полное содержание URL. – vipulsharma