代码之家  ›  专栏  ›  技术社区  ›  Gerald Ferreira

从文本区域捕获标题和元标记

  •  0
  • Gerald Ferreira  · 技术社区  · 16 年前

    <title></title>

    和 Metadata 从一个 form1 但不知道怎么做。。。

    我的任务是这样做: document.write(document.form1.title); 或 document.write.texteara.(document.form1.title); 但这对我没用。。。

      <textarea name="textarea" id="textarea" cols="45" rows="5"><title>This is the title tag extracted</title><meta name="keywords" content="test 1, test 2, test3" /></textarea>
      </label>
    </form>
    <script type="text/javascript" src="<%= g_page_site_actual %>/js/jquery-1.4.2.min.js"></script>
    <script language="JavaScript"><!--
    if (document.getElementsByName) {
      var metaArray = document.getElementsByName('Author');
      for (var i=0; i<metaArray.length; i++) {
        document.write(metaArray[i].content + '<br>');
      }
    
      var metaArray = document.getElementsByName('Description');
      for (var i=0; i<metaArray.length; i++) {
        document.write(metaArray[i].content + '<br>');
      }
    
      var metaArray = document.getElementsByName('Keywords');
      for (var i=0; i<metaArray.length; i++) {
        document.write(metaArray[i].content + '<br>');
      }
    }
    document.write(document.form1.title);
    //--></script>
    

    1 回复  |  直到 16 年前
        1
  •  1
  •   bobince    16 年前

    <textarea name="textarea" id="textarea" cols="45" rows="5"><title>This is the title tag extracted</title><meta name="keywords" content="test 1, test 2, test3" /></textarea>
    

    这是无效的,尽管浏览器通常会为您修复它(直到序列结束) </textarea ,无论如何)。必须进行HTML编码 < 和 & 在一个 <textarea> 就像所有文本内容和属性值一样:

    <textarea name="textarea" id="textarea" cols="45" rows="5">&lt;title>This is the title tag extracted&lt;/title>&lt;meta name="keywords" content="test 1, test 2, test3" /></textarea>
    

    input.value 和其他领域一样。

    element.innerHTML= value 然后使用DOM方法从元素中提取数据:

    var el= document.createElement('head');
    el.innerHTML= document.getElementById('textarea').value;
    alert(el.getElementsByTagName('title')[0].firstChild.value);
    alert(el.getElementsByTagName('meta')[0].content);
    

    innerHTML 在 <head> 或者许多其他不是普通块/内联元素的元素。为了让它在IE上工作,您必须使用一个完整的新文档来处理内容(真是一件痛苦的事):

    <iframe id="iframe"></iframe>
    <script type="text/javascript">
        var iframe= document.getElementById('iframe');
        var idoc= 'contentDocument' in iframe? iframe.contentDocument : iframe.contentWindow.document;
        idoc.write(document.getElementById('textarea').value);
        idoc.close();
        alert(idoc.title);
        alert(idoc.getElementsByTagName('meta')[0].content);
    </script>
    

    <script type="text/javascript">
        var info= {
            "title": "This is the title tag extracted",
            "keywords": ["test 1", "test 2", "test3"]
        };
    </script>