我试图获取我的要点的原始内容,以便我可以显示。
以下是代码:
function requestCrossDomain(url, cb) {
yql = "http://query.yahooapis.com/v1/public/yql?" +
"q=" + encodeURIComponent('select * from html where url="' + url + '" ') +
"&callback=?";
$.getJSON(yql, function (data) {
if(data.results[0]){
console.log(data.results[0]);
}
});
}
requestCrossDomain("https://gist.githubusercontent.com/gongzhitaao/11357604/raw/7946d46c975337084b18ff1d59530acc59c9e010/index.html");
data.results[0]
确实包含了一些东西,但却是垃圾。 <script></script>
之间的代码由<p>
分隔(在render
函数中)???为什么?我哪里错了?
以下是jsfiddle ,您可以看到,此处只显示<script>
之间的部分代码。
答案 0 :(得分:1)
最后我解决了这个问题。它似乎是参数compat="html5"
。默认的html规范是html4。此外,我还需要xpath
参数来选择<header>
内容以及<body>
内容。希望以下代码对其他代码有所帮助:
function requestCrossDomain(url, cb) {
yql = "http://query.yahooapis.com/v1/public/yql?" +
"q=" +
encodeURIComponent('select * from html where url="' + url + '" ') +
encodeURIComponent('and compat="html5" and xpath="//html/head|//html/body"') +
"&format=xml&callback=?";
$.getJSON(yql, function (data) {
if(data.results)
cb(data.results);
});
}