2011-07-20 63 views
0

我想從Digg.com複製一些功能,當您發佈新地址時,它會自動掃描網址並找到頁面標題。從網頁中提取標題,只使用url

我在使用經典的ASP和VBScript編程並使用javascript。任何人都知道腳本來實現這一目標..?從客戶方

提前很多感謝..

保羅

回答

2

這是一個基本的例子。你應該包括一些數據驗證。

ASP頁應該被稱爲像getPageTitle.asp

<% 
Response.Buffer = True 

Dim strURL, objXMLHTTP, objXML, strContents 
Dim objRegExp, strHTML, strPattern, colMatches, strTitle 

strURL = Request.Form("url") 

Set objXMLHTTP = Server.CreateObject ("Microsoft.XMLHTTP") 
'Or if this doesn't work then try : 
'Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP") 

objXMLHTTP.Open "GET", strURL, False 

objXMLHTTP.Send 

strContents = objXMLHTTP.ResponseText 

Set objXMLHTTP = Nothing 

Set objRegExp = New RegExp 

strPattern = "<title>(.*?)<\/title>" 

objRegExp.Pattern = strPattern 
objRegExp.IgnoreCase = True 
objRegExp.Global = True 

Set colMatches = objRegExp.Execute(strContents) 

If colMatches.Count > 0 then 
    strTitle = objMatches(0).Value 
Else 
    strTitle = "" 
End If 

Set objRegExp = Nothing 

Response.write(strTitle) 
%> 

這是一個基本的JavaScript實施後。你可以用任何你喜歡的JS框架來修改它。

var script = "http://www.example.com/getPageTitle.asp" 
var page2check = "http://www.example.com/somePageToCheck.html" 

function getXMLHttpRequestObject() { 
    var xmlhttp; 
    /*@cc_on 
    @if (@_jscript_version >= 5) 
    try { 
     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
     try { 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (E) { 
     xmlhttp = false; 
     } 
    } 
    @else 
    xmlhttp = false; 
    @end @*/ 
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { 
    try { 
     xmlhttp = new XMLHttpRequest(); 
    } catch (e) { 
     xmlhttp = false; 
    } 
    } 
    return xmlhttp; 
} 
var http = new getXMLHttpRequestObject(); 

var parameters = "url="+page2check; 
http.open("POST", script, true); 

http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
http.setRequestHeader("Content-length", parameters .length); 
http.setRequestHeader("Connection", "close"); 

http.onreadystatechange = function() { 
    if(http.readyState == 4) { 
    alert(http.responseText); 
    } 
} 
http.send(parameters); 

var pageTitle = http.ResponseText 

我希望這會有所幫助。

0
  1. 發送URL到服務器端使用JavaScript(阿賈克斯)。
  2. 在服務器端使用asp通過它的url加載html頁面。
  3. 解析html頁面,提取標題。
  4. 給客戶發送標題。
+0

聽起來像是一個很好的解決方案。可以使用一些編碼請幫助... – neojakey

+0

@neojakey,我不是asp大師,所以不能幫你在這裏。關於js部分,您可以使用['jQuery.ajax()'](http://api.jquery.com/jQuery.ajax/)或其他包裝器,如fi,[http://ajaxian.com/archives /100-line-ajax-wrapper](http://ajaxian.com/archives/100-line-ajax-wrapper) –

+0

非常感謝您的協助我真的很感激它..! – neojakey