Есть ли в любом случае, чтобы получить исходный код страницы, загруженный iframe? Я не хочу ИЗМЕНИТЬ любой код, я просто хочу ПРОЧИТАТЬ его. Мне также нужно получить это, используя javascript/html.Получение исходного кода iframe
ответ
document.getElementById('iframeID').contentWindow.document.body.innerHTML
Работает в Firefox, Chrome, Opera, IE9 бета
уже пробовал, он не работает –
@Daz В браузере сообщается об ошибке? Попробуйте в Chrome, так как у этого браузера есть хорошая отчетность об ошибках. Если это проблема междоменного доступа, Chrome сообщит, что в ошибке. –
Я запускаю его через chrome. Он падает на эту строку. Я выставляю предупреждение после строки, и предупреждение не запускается. Я видел примеры этой работы, но они были с 2008 года. Вы уверен, что это все еще работает в современных браузерах? –
См. https://developer.mozilla.org/en/HTML/Element/iframe#Scripting, как браузеры на основе Mozilla обрабатывают его. В вашей любимой библиотеке JavaScript должны быть абстракции, которые будут обрабатывать неизбежные различия в именах между IE, WebKit, Gecko и т. Д. DOM.
Использование JQuery: http://api.jquery.com/contents/ (только если совпадением)
Например:
$(iframe).contents().find('body').html();
Если он не совпадает, вы можете загрузить его снова (как она может быть сохранена уже в клиенте он не может зайти на сервер еще раз):
var html;
$.get($(iframe).get(0).src, function(content) {
html = content;
});
Является ли OP с помощью jQuery? –
Попробуйте так:
<!DOCTYPE html>
<html>
<body>
//this is iframe I ll look for its source
<iframe id="frmin" src="http://www.w3schools.com"></iframe>
<p>Click the button to see the source.</p>
//this is display I will display Iframe's source here
<div id="srcout"></div>
//show source upon click event
<button onclick="myFunction()">Show it</button>
<script>
function myFunction() {
//get Iframe element ready for javascript manipulation
var frm = document.getElementById("frmin");
//get display element ready for javascript manipulation
var dsp = document.getElementById("srcout");
//find Iframe's HTML (root) element, [0] because I'm using getElementsByTagName which returns node list so I have to chose the 1st one, and put its outer content (i.e. with outer tags) to display, i.e. dsp.innerText. I use innerText because I want a text output not formatted as html.
dsp.innerText = frm.contentDocument.getElementsByTagName('html')[0].outerHTML;
}
</script>
</body>
</html>
Пожалуйста, объясните вам код! – aschipfl
Этот подход использует получение HTML-элемента Iframe. – Lumic
Этот подход использует получение HTML-кода Iframe. Сначала я использую специфическую манипуляцию iframe ** document.getElementById («frmin»). ContentDocument ... ** для доступа к содержимому Iframe ... затем я использую getElementsByTagName, чтобы найти элемент HTML (root) Iframe: ** ... contentDocument. getElementsByTagName ('html') [0] ... ** // ('html') [0], если было больше элементов HTML. Наконец, я использую ** ... outerHTML ... **, чтобы получить HTML-код вкл. внешние теги. – Lumic
Я знаю, что это выглядит сложным, но я даю вам 100% пуленепробиваемый способ, который работает, чтобы просмотреть исходные коды на вашей странице. Я точно не знаю, как показать его в iframe, но есть и другой способ просмотра исходников. Ведьма намного лучше, чем iframe, и вот как.
Важно, чтобы JavaScript и HTML были именно такими.
CSS: В <head></head>
разделе:
<style type="text/css" >
.button
{
background:#000cff;
padding:2px 10px;
color:white;
text-decoration:none;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
cursor: pointer;
font-weight: bold;
color: white;
display: inline-block;
box-shadow: 0 0 3px gray;
margin: 0px;
font: bold 11px Arial, Sans-Serif;
}
#source-code
{
display:none;
position:absolute;
top:-24px;
left:0;
width:100%;
height:414px;
background:rgba(255,255,255,0.0);
}
#source-code:target { display: block; }
#source-code pre
{
padding:20px;
font:14px/1.6 Monaco, Courier, MonoSpace;
margin:50px auto;
background:rgba(0,0,0,0.8);
color:white;
width:80%;
height:80%;
overflow:auto;
}
#source-code pre a,
#source-code pre a span
{
text-decoration:none;
color:#00ccff !important;
}
#x
{
position:absolute;
top:30px;
left:10%;
margin-left:-41px;
}
.control-copytextarea
{
position:absolute;
top:-3px;
left:20px;
cursor: pointer;
font-weight: bold;
padding:3px 10px;
border-radius: 5px 5px 0 0;
background: darkred;
color: white;
display: inline-block;
box-shadow: 0 0 3px gray;
margin: 0px;
font: bold 10px Arial, Sans-Serif;
}
</style>
JavaScript:
<script languade="JavaScript">
$(function() {
$("<pre />", {
"html": '<!DOCTYPE html>\n<html>\n' +
$("html")
.html()
.replace(/[<>]/g, function(m) { return {'<':'<','>':'>'}[m]})
.replace(/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi,'<a href="$1">$1</a>') +
'\n</html>',
"class": "prettyprint"
}).appendTo("#source-code");
prettyPrint();
});
</script>
<script languade="JavaScript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script languade="JavaScript">
var pageTracker = _gat._getTracker("UA-68528-29");
pageTracker._initData();
pageTracker._trackPageview();
</script>
Примечание: Вам не нужно использовать эти коды JavaScript от сети, но и для ради того, чтобы он работал на всех браузерах, вам также рекомендуется использовать их.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://css-tricks.com/examples/ViewSourceButton/prettify/prettify.js"></script>
HTML: В разделе <body></body>
:
<a class="button" href="#source-code" id="view-source">Show the Source Code for this page</a>
<div id="source-code" align="left">
<a href="#" id="x"><input type="button" alt="close" class="control-copytextarea" value=" Close Source Code Viewing " /></a>
</div>
ПРИМЕЧАНИЕ: Вы можете непосредственно копировать и вставлять коды на веб-страницу, она будет работать именно так, как оно есть.
Полный пример:
<html>
<head><title>View your Source Code</title>
<style type="text/css" >
.button
{
background:#000cff;
padding:2px 10px;
color:white;
text-decoration:none;
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
cursor: pointer;
font-weight: bold;
color: white;
display: inline-block;
box-shadow: 0 0 3px gray;
margin: 0px;
font: bold 11px Arial, Sans-Serif;
}
#source-code
{
display:none;
position:absolute;
top:-24px;
left:0;
width:100%;
height:414px;
background:rgba(255,255,255,0.0);
}
#source-code:target { display: block; }
#source-code pre
{
padding:20px;
font:14px/1.6 Monaco, Courier, MonoSpace;
margin:50px auto;
background:rgba(0,0,0,0.8);
color:white;
width:80%;
height:80%;
overflow:auto;
}
#source-code pre a,
#source-code pre a span
{
text-decoration:none;
color:#00ccff !important;
}
#x
{
position:absolute;
top:30px;
left:10%;
margin-left:-41px;
}
.control-copytextarea
{
position:absolute;
top:-3px;
left:20px;
cursor: pointer;
font-weight: bold;
padding:3px 10px;
border-radius: 5px 5px 0 0;
background: darkred;
color: white;
display: inline-block;
box-shadow: 0 0 3px gray;
margin: 0px;
font: bold 10px Arial, Sans-Serif;
}
</style>
<script languade="JavaScript">
$(function() {
$("<pre />", {
"html": '<!DOCTYPE html>\n<html>\n' +
$("html")
.html()
.replace(/[<>]/g, function(m) { return {'<':'<','>':'>'}[m]})
.replace(/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi,'<a href="$1">$1</a>') +
'\n</html>',
"class": "prettyprint"
}).appendTo("#source-code");
prettyPrint();
});
</script>
<script languade="JavaScript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script languade="JavaScript">
var pageTracker = _gat._getTracker("UA-68528-29");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://css-tricks.com/examples/ViewSourceButton/prettify/prettify.js"></script>
</head>
<body>
<a class="button" href="#source-code" id="view-source">Show the Source Code for this page</a>
<div id="source-code" align="left">
<a href="#" id="x"><input type="button" alt="close" class="control-copytextarea" value=" Close Source Code Viewing " /></a>
</div>
</body>
</html>
- 1. Получение исходного кода Android
- 2. Получение исходного местоположения исходного кода JavaScript?
- 3. получение исходного кода ip scapy
- 4. Получение исходного кода из двоичного кода
- 5. Получение исходного кода страницы с расширением googlechrome
- 6. Получение html исходного кода в php
- 7. получение второй новейшей версии исходного кода
- 8. Получение элемента ссылки youtube из исходного кода
- 9. Получение исходного кода страницы с UIWebView
- 10. Получение конкретной ссылки из исходного кода Python
- 11. Получение исходного кода HTML из webView
- 12. Получение реального исходного кода с помощью javascript?
- 13. Получение ключевой точки от исходного кода
- 14. Eclipse PDT: получение исходного кода за ASTNode
- 15. Получение генерированного исходного кода страницы в блокноте
- 16. Получение родительского исходного кода из src attributte
- 17. Получение исходного кода HTML. UF URI
- 18. Получение исходного кода html текущей веб-страницы
- 19. Получение исходного кода из объектного файла
- 20. Получение ссылок из html исходного кода
- 21. Изменение исходного кода вашего исходного кода
- 22. Зависит от исходного состояния исходного кода исходного кода
- 23. Получение исходного кода из кода C, скомпилированного с параметрами отладки
- 24. Модификация кода исходного кода
- 25. Получение местоположения URL-адреса iframe из исходного документа
- 26. Обучение передачи кода исходного кода
- 27. Изменение исходного кода исходного кода путем привязки wpf
- 28. Динамические категории eBay для указанного исходного кода образца исходного кода
- 29. SSIS FTP Task - загрузка исходного исходного кода
- 30. Структура исходного файла исходного кода Linux C++
Совпадают ли домены? –
Я делаю это через расширение Google. Я добавил домен, к которому я пытаюсь обратиться к файлу манифеста в разделе «Разрешения». Я не совсем уверен, что эта проблема проходит по той же проблеме, но как вы это сделаете, полагая, что домены одинаковы? –
'' – drudge