JavaScript无法获取任意页面的源代码,最后我知道。但是PHP非常容易。
//get page source code with php
<?php
url = 'http://www.thesaurus.com/browse/strong?s=t';
$src = file_get_contents($url);
?>
PHP不擅长操纵DOM,但jQuery非常适合!
我想做点什么
//manipulate source code with javascript
<script>
html = '"' + <?php echo $src;?> + '"';
listItems = $(html + " li");
printLists = '';
$.each(listItems, function(ind, el) {
printLists += el.innerHTML + "<br/>";
});
document.write(printLists);
</script>
但是,每当我将$src
回显到脚本标记中时,它立即被解释为HTML,并且该页面成为实际网站的实时嘲弄。
//Actually just shows me thesaurus.com@strong
<body>
<div id="holder" style="display: none;"></div>
<script>
holder = $("#holder");
nodeNames = [];
html = $.parseHTML(<?php echo $src;?>, holder, false);
</script>
</body>
短语'virtual DOM'听起来不对,但我真的不希望任何复制的源代码显示出来。我只想提取它的某些部分:从控制台运行脚本,在一些词库中搜索一个术语,获取结果,并将它们保存到本地同义词库脚本访问的JSON中。
我对如何做其他事情有一个坚实的想法,不要指望这是一个棘手的部分!
有关阻止浏览器解析HTML的任何建议吗?
(我更喜欢这个在没有浏览器的情况下作为脚本文件运行,但是在thesaurus.js
文件中加载jQuery时遇到了麻烦。)
答案 0 :(得分:0)
您可以运行php脚本来获取文件内容并将结果回显到带有readonly / disabled的textarea,然后通过ajax查询该php文件以在页面上显示生成的textarea。
例如,output.php:
<?php
$str = '<p>I am a paragraph.</p>';
echo '<textarea readonly="readonly">'.$str.'</textarea>';
?>
原始文件中的AJAX调用:
$.ajax({url: 'output.php', success: function(data) { $('#result').html(data); }});