JavaScript怎么通过输入框输入的网址获取它的标题

JavaScript09

JavaScript怎么通过输入框输入的网址获取它的标题,第1张

如果仅仅是获得标题的话,这里有一个思路:用JavaScript提供的HTTP Request对象,发送一个HTTP请求,然后分析返回的文本,获取其中title标记的内容(可以用字串匹配的方法)。或者,将返回的文本写入一个iframe的document,然后获得此iframe的title。

如果是同一网域中,则可以直接将iframe的src置为输入的网址,然后获取其title。上面的方法是跨网域的,因为安全的原因浏览器好像禁止了不同网域页面脚本相互访问。

html文档中的title元素,在w3c文档中,有这样的定义:

interface HTMLTitleElement : HTMLElement {

attribute DOMString text

}

可以看到title元素继承了HTMLElement,并拥有一个text属性,该属性可读写title.text( = value);

那么,如果我们要获得title元素之间的文本,我们可以有多种方法,

1、document.title;

2、title.text(var title = document.getElementsByTagName('title'))

3、title.innerHTML

第三种方法不靠谱,会返回title之间的所有东西,包括elements、注释节点;

而第一、第二种方法则是标准的获取title内容的方法,它们会忽略elements、注释等节点,返回所有text node节点字符串;

如果是从A跳到B,那么这时的A页面的DOM已经被释放了,B页面无法访问,如果想要再读取A的内容,只能通过Ajax从服务器重新获取A页面,然后可以通过正则从A的源代码中提取TITLE标签间的内容.

或者,有个简单点的办法,在A页面加入一段JS,将自己的TITLE写入Cookie,在B页面从Cookie中取出这个值,就容易很多了.

通过URL参数传递A的TITLE到B也是一个办法.