如何使用javascript从外部页面上的Div中提取文本?

时间:2012-01-29 08:41:01

标签: javascript html external

在我的页面上,我有一个代码,我想在外部页面上从我的div加载文本。我想要做的是将我在单独页面上的文章标题加载到自动收报机中,我已经知道如何将它们加载到我的自动收报机但是我需要知道如何从外部div中提取文本(并将其加载到另一个div中)。

我的外部页面

<div id="boundry2"> <h5> <div class="title"> Title: </div> <div class="date"> Date </div> </h5> Article text <br/> </div>

我的自动收报机

<a href="#"> <div id="myhtmlticker" class="tickerstyle"> <div class="messagediv"> Text from title </div> <div class="messagediv">Text from title </div> </div> </a>

我的自动收报机通过id引用外部Javascript代码,使得每个div都显示类messagediv。我希望将外部页面上<div class="title">Title:</div>的文字加载到<div class="messagediv">Text from title</div>。请记住,将有多篇文章,我希望每个标题都显示出来。 感谢所有帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

试试这个解决方案。在代码中使用ajax请求将外部页面作为响应文本,然后解析响应以找到标题,然后您可以将其加载到您的代码中。

希望这会对你有所帮助。

答案 1 :(得分:0)

function getFile(fileName, method, callback) {
    // you can also add xdomain request
    var request = new XMLHttpRequest();
    request.open(method, fileName, true);
    request.onreadystatechange = function() {
        if (request.readyState === 4) {
            if (request.status === 200) {
                callback(request.responseText);
            }
        }
    }
    request.send();
}

function setTitle(response) {
    var result = response.match(/(<div class="title">(.*?)<\/div>)+/ig);
    var target = document.getElementsByClassName('messagediv');
    for (var i = 0; i < target.length; i++) {
        target[i].innerHTML = result[0];
    }
}

getFile('testpage.html', 'get', setTitle);