복붙노트

[JQUERY] 페이지의 메타 태그를 변경하는 자바 스크립트를 사용하는 것이 가능?

JQUERY

페이지의 메타 태그를 변경하는 자바 스크립트를 사용하는 것이 가능?

해결법


  1. 1.예, 당신은 할 수 있습니다.

    예, 당신은 할 수 있습니다.

    몇 가지 흥미로운 사용 사례가 있습니다 : 일부 브라우저 및 플러그인 메타 요소를 분석하고 다른 값에 대한 자신의 행동을 변경합니다.

    <meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE">
    
    <meta name="format-detection" content="telephone=no">
    
    <meta http-equiv="X-UA-Compatible" content="chrome=1">
    
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    

    이것은 하나의 자바 스크립트에 의해 변경 될 수 있습니다. 참조 : 아이폰 뷰포트 규모의 버그에 대한 수정을

    일부 사용자 에이전트 (예를 들어 오페라) 북마크에 대한 설명을 사용합니다. 여기 개인화 된 컨텐츠를 추가 할 수 있습니다. 예:

    <!DOCTYPE html>
    <title>Test</title>
    <meta name="description" content="this is old">
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.js'></script>
    
    <button>Change description</button>
    
    <script type='text/javascript'>
    $('button').on('click', function() {
        // Just replacing the value of the 'content' attribute will not work.
        $('meta[name=description]').remove();
        $('head').append( '<meta name="description" content="this is new">' );
    });
    </script>
    

    그래서, 그것은 단지에 대한 검색 엔진이 아니다.


  2. 2.네, 그렇습니다.

    네, 그렇습니다.

    예를 들면 메타 설명을 설정합니다 :

    document.querySelector('meta[name="description"]').setAttribute("content", _desc);
    

  3. 3.당신은 (jQuery로) 같은 것을 사용하십시오 :

    당신은 (jQuery로) 같은 것을 사용하십시오 :

    $('meta[name=author]').attr('content', 'New Author Name');
    

    메타 태그는 보통 일반적으로 자바 스크립트를 실행하지 않고, 문서가로드 될 때 긁어 그러나 그 대부분은 무의미 할 것이다.


  4. 4.이 것과 같은, jQuery를 호출, 예를 들어,와 메타를 변경할 수 있습니다 :

    이 것과 같은, jQuery를 호출, 예를 들어,와 메타를 변경할 수 있습니다 :

    $('meta[name=keywords]').attr('content', new_keywords);
    $('meta[name=description]').attr('content', new_description);
    

    나는 구글은 그들이 #! 해시 및 _escaped_fragment_ 전화를 통해 인덱스 아약스 내용을 것이라고 말했다 이후는, 지금은 중요합니까 생각합니다. 그리고 이제 그들은 (참조, 헤드리스 브라우저, 심지어 자동으로 페이지가 위에서 언급 한에 링크 'HTML 스냅 샷 생성'을)를 확인할 수 있습니다 나는 그것이 하드 코어 SEO들에 대한 방법이라고 생각 때문에.


  5. 5.이 페이지의 메타 태그를 변경하는 자바 스크립트를 사용하는 것이 확실히 가능하다. 여기에 자바 스크립트 유일한 방법은 다음과 같습니다

    이 페이지의 메타 태그를 변경하는 자바 스크립트를 사용하는 것이 확실히 가능하다. 여기에 자바 스크립트 유일한 방법은 다음과 같습니다

    document.getElementsByTagName('meta')["keywords"].content = "My new page keywords!!";
    document.getElementsByTagName('meta')["description"].content = "My new page description!!";
    document.title = "My new Document Title!!";
    

    나는 구글이 인덱스 위의 코드에 대한 이러한 클라이언트 측 변경한다는 것을 확인했습니다.


  6. 6.메타 태그는 DOM의 일부이며 및 -i guess- 변경 액세스 할 수 있지만 검색 - 엔진 (메타 태그의 주요 소비자) 자바 스크립트가 실행되지 않습니다으로의 변화를 볼 수 없습니다. 브라우저에서 의미가 메타 태그 (새로 고침이 마음에 온다)을 변경하고 그렇게하지 않는 한,이 거의 사용 될 수 있을까요?

    메타 태그는 DOM의 일부이며 및 -i guess- 변경 액세스 할 수 있지만 검색 - 엔진 (메타 태그의 주요 소비자) 자바 스크립트가 실행되지 않습니다으로의 변화를 볼 수 없습니다. 브라우저에서 의미가 메타 태그 (새로 고침이 마음에 온다)을 변경하고 그렇게하지 않는 한,이 거의 사용 될 수 있을까요?


  7. 7.그것은 다음과 같이 가능 (또는 $ ( '메타 [이름 = 작가]')처럼 jQuery를 사용 ATTR ( "내용").)한다 :

    그것은 다음과 같이 가능 (또는 $ ( '메타 [이름 = 작가]')처럼 jQuery를 사용 ATTR ( "내용").)한다 :

    <html>
    <head>
    <title>Meta Data</title>
    <meta name="Author" content="Martin Webb">
    <meta name="Author" content="A.N. Other">
    <meta name="Description" content="A sample html file for extracting meta data">
    <meta name="Keywords" content="JavaScript, DOM, W3C">
    
    </head>
    
    <body>
    <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>');
      }
    }
    //--></script>
    </body>
    
    </html>
    

  8. 8.

    $(document).ready(function() {
      $('meta[property="og:title"]').remove();
      $('meta[property="og:description"]').remove();
      $('meta[property="og:url"]').remove();
      $("head").append('<meta property="og:title" content="blubb1">');
      $("head").append('<meta property="og:description" content="blubb2">');
      $("head").append('<meta property="og:url" content="blubb3">');
    });
    

  9. 9.좀 더 간단하고 가벼운 솔루션을 사용할 수 있습니다 :

    좀 더 간단하고 가벼운 솔루션을 사용할 수 있습니다 :

    document.head.querySelector('meta[name="description"]').content = _desc
    

  10. 10.

    var metaTag = document.getElementsByTagName('meta');
    for (var i=0; i < metaTag.length; i++) {
        if (metaTag[i].getAttribute("http-equiv")=='refresh')
            metaTag[i].content = '666';
        if (metaTag[i].getAttribute("name")=='Keywords')
            metaTag[i].content = 'js, solver';
    }
    

  11. 11.각 메타 태그의 예 간단한 추가 및 DIV 속성

    각 메타 태그의 예 간단한 추가 및 DIV 속성

    <meta id="mtlink" name="url" content="">
    <meta id="mtdesc" name="description" content="" />
    <meta id="mtkwrds" name="keywords" content="" />
    

    지금 전 정상 DIV 변화에있다. n 개의 클릭

    <a href="#" onClick="changeTags(); return false;">Change Meta Tags</a>
    

    jQuery로 기능 변경 태그

    function changeTags(){
       $("#mtlink").attr("content","http://albup.com");
       $("#mtdesc").attr("content","music all the time");
       $("#mtkwrds").attr("content","mp3, download music, ");
    
    }
    

  12. 12.우리 모두의 메타 태그가없는 경우, 우리는 다음을 사용할 수 있습니다 :

    우리 모두의 메타 태그가없는 경우, 우리는 다음을 사용할 수 있습니다 :

    var _desc = 'Out description';
    var meta = document.createElement('meta');
    meta.setAttribute('name', 'description');
    meta.setAttribute('content', _desc);
    document.getElementsByTagName('head')[0].appendChild(meta);
    

  13. 13.OG 변경하려는 사람들을위한 : 제목 메타 태그 (또는 다른). 나는이 방법을 수행하는 관리 :

    OG 변경하려는 사람들을위한 : 제목 메타 태그 (또는 다른). 나는이 방법을 수행하는 관리 :

    document.querySelector('meta[property="og:title"]').setAttribute("content", "Example with og title meta tag");
    

    주의 '메타 [특성 = "OG : 제목은"]'고 말씀 재산, 그리고 이름이 포함되어 있습니다.


  14. 14.아니, 사업부는 body 요소가 아닌 헤드 요소

    아니, 사업부는 body 요소가 아닌 헤드 요소

    편집 : 그럼 유일의 SE를 얻을하려고는 기본 HTML이 아닌 아약스 수정 하나입니다.


  15. 15.네, 자바 스크립트와 메타 태그를 추가 할 수 있습니다. 내 예에서했던

    네, 자바 스크립트와 메타 태그를 추가 할 수 있습니다. 내 예에서했던

    안드로이드 메타 태그 제거를 존중하지?

    그러나, 나는 그것이 다른 다음을 제거 변경하는 방법을 잘 모릅니다. 내가 불을 지르고 그렇게 안드로이드 있었으면 .. BTW, 내 예에 .. 당신이 '추가'버튼을 클릭 할 때 태그를 추가하고 뷰포트는 각각 변경하지만 난 (안드로이드, 제거) 다시 복귀하는 방법을 잘 모릅니다 나는 무슨 일이 일어 났는지 보았다. 파이어 폭스는 태그를 제거한다. 사람이 제발 노트에 아이디어가있는 경우 내 질문에 이렇게.


  16. 16.색인이 있습니다

    색인이 있습니다

    <link rel="opengraph" href="{http://yourPage.com/subdomain.php}"/>
    

    아약스 파일이 필요 과 : 유형 "과 : 제목"과 : 설명과과 : 이미지

    또한이 추가

    <link rel="origin" href={http://yourPage.com}/>
    

    다음 아약스 호출 후 JS에 추가

    FB.XFBML.parse();
    

    편집 : 당신은 다음에 대한 올바른 제목과 이미지를 표시 할 수 있습니다 페이스 북에 TXT / php에 douments (광산 단지 확장으로 .PHP 이름,하지만 파일이 txt 더 있습니다 있습니다). 그때 나는 이러한 파일의 메타 태그 및 모든 서브 파일에 대한 색인 파일의 모든 문서의 인덱스에 대한 링크 백, 또한 메타 링크가 ...

    누군가가이 일을 더 좋은 방법을 알고 있다면 나는 어떤 추가 감사하겠습니다 :)


  17. 17.이 때문에 모바일 / 비 모바일 브라우저 상태를 발견하고 휴대폰에 필요한 장치 폭 뷰포트를 설정, 그것은 작은 변화 모바일 및 다른 브라우저에서 실행하는 데 필요한 약간 엄격하게 기하학적으로 설정 앱 작동하는 것 같군. 스크립트 헤더에서 실행할 수있는 바와 같이, 헤더 JS 아래는 페이지를로드하기 전에 장치 폭에 대한 메타 태그를 변경하는 것 같다. 하나는 navigator.userAgent의 사용이 실험으로 규정되어 있습니다 있습니다. 스크립트는 하나 몇 가지 초기 내용을 선택해야하므로, 메타 태그 항목이 변경 될 따른 다음, 어떤 조건으로 변경해야합니다.

    이 때문에 모바일 / 비 모바일 브라우저 상태를 발견하고 휴대폰에 필요한 장치 폭 뷰포트를 설정, 그것은 작은 변화 모바일 및 다른 브라우저에서 실행하는 데 필요한 약간 엄격하게 기하학적으로 설정 앱 작동하는 것 같군. 스크립트 헤더에서 실행할 수있는 바와 같이, 헤더 JS 아래는 페이지를로드하기 전에 장치 폭에 대한 메타 태그를 변경하는 것 같다. 하나는 navigator.userAgent의 사용이 실험으로 규정되어 있습니다 있습니다. 스크립트는 하나 몇 가지 초기 내용을 선택해야하므로, 메타 태그 항목이 변경 될 따른 다음, 어떤 조건으로 변경해야합니다.

    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script>  
      var userAgentHeader = navigator.userAgent ; 
      var browserIsMobileOrNot = "mobileNOT" ; 
      if( userAgentHeader.includes( "Mobi" ) ) { 
        browserIsMobileOrNot = "mobileYES" ; 
        //document.querySelector('meta[name="viewport"]').setAttribute( "content", "width=device-width, initial-scale=1.0" );
      } else { 
        browserIsMobileOrNot = "mobileNOT" ;  
        document.querySelector('meta[name="viewport"]').setAttribute( "content", "");
      }
    </script>
    
    <link rel="stylesheet" href="css/index.css">
    

    . . . . . .

  18. from https://stackoverflow.com/questions/2568760/is-it-possible-to-use-javascript-to-change-the-meta-tags-of-the-page by cc-by-sa and MIT license