-1

所以我得到了这个从另一个网站提取 rss 提要的代码(我问过他们,他们给了我许可) 我不知道我应该在 TAG1 和 TAG2 中写什么。基本上这只是我的问题:这是 html(它是一个 ajaxed 页面)

<!doctype html>
<html lang="hu">
<head>
    <title>Videók</title>
    <meta charset="utf-8"/>
        <script type="text/javascript" src="../js/videok.js"></script>
</head>
<body>
    <h2><a href="#" style="font-size:15pt; color:#ff00e8; text-decoration: none;">Van  egy  jó  videód? Töltsd fel és kikerülhet az oldalra!</a></h2>
        <div id="videok"></div>
</body>        
</html>

这是用于拉动的 Javascript

window.onload = initAll;
var xhr = false;
var dataArray = new Array();
var url = "choose url";

function initAll() {

if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
}
else {
    if (window.ActiveXObject) {
        try {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) { }
    }
}

if (xhr) {
    xhr.onreadystatechange = setDataArray;
    xhr.open("GET", url, true);
    xhr.send(null);
}
else {
    alert("couldn't create XMLHttpRequest");
}
}

function setDataArray() {
var tag1 = "subject1";
var tag2 = "subject2";

if (xhr.readyState == 4) {
    if (xhr.status == 200) {
        if (xhr.responseXML) {

            var allData = xhr.responseXML.getElementsByTagName(tag1);
            for (var i=0; i<allData.length; i++) {
                dataArray[i] = allData[i].getElementsByTagName(tag2)[0].firstChild.nodeValue;
            }
        }
    }
    else {
        alert("the request failed" + xhr.status);
    }
}
}
4

2 回答 2

2

您将无法使用 javascript 从另一个网页中提取内容,因为 javascript 在浏览器中被沙盒化。沙盒意味着您只能将请求发送到 javascript 最初来自的同一域(也称为“相同的源策略”)。

您可以使用像 php 这样的服务器端语言进行拉取,然后通过 ajax 将其传递给 javascript。

您发布的代码看起来只是进行了一个简单的 ajax 调用,但在尝试从您自己的站点以外的任何地方请求 RSS 时,它应该不起作用。

于 2012-07-04T20:02:14.580 回答
1

最好让应用程序的服务器端获取 xml 的数据并按照您的需要格式化数据。

您将让 Ajax 请求到达服务器的端点,然后您的服务器将获取 xml 数据,正确格式化并使用正确格式化的数据响应请求。

于 2012-07-04T20:11:24.637 回答