태그 보관물: javascript

javascript

JavaScript를 사용하여 페이지의 메타 태그를 변경할 수 있습니까? div를 넣고 display : none을 표시하면

헤드에 div를 넣고 display : none을 표시하면 JavaScript를 사용하여 표시하는 것보다 작동합니까?

편집하다:

AJAX에 물건을로드했습니다. 그리고 내 AJAX가 사이트의 “메인”부분을 변경함에 따라 메타 태그도 변경하고 싶습니다.



답변

예, 할 수 있습니다.

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

Skype : 전화 번호 파서 끄기

<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE">

iPhone : 전화 번호 파서 끄기

<meta name="format-detection" content="telephone=no">

Google 크롬 프레임

<meta http-equiv="X-UA-Compatible" content="chrome=1">

모바일 장치 용 뷰포트 정의

<meta name="viewport" content="width=device-width, initial-scale=1.0">

이것은 JavaScript로 변경할 수 있습니다. 참조 : iPhone 뷰포트 배율 버그 수정

메타 설명

일부 사용자 에이전트 (예 : Opera)는 책갈피에 대한 설명을 사용합니다. 여기에서 개인화 된 콘텐츠를 추가 할 수 있습니다. 예:

<!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>

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


답변

네, 그렇습니다.

예 : 메타 설명을 설정하려면 :

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

답변

다음과 같은 것을 사용합니다 (jQuery 사용).

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

그러나 메타 태그는 일반적으로 JavaScript를 실행하지 않고 문서가로드 될 때만 스크랩되기 때문에 대부분 의미가 없습니다.


답변

예를 들어 다음과 같이 jQuery 호출을 사용하여 메타를 변경할 수 있습니다.

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

Google이 및 호출을 통해 ajax 콘텐츠를 인덱싱 할 것이라고 말했기 때문에 지금 중요 하다고 생각 합니다. 그리고 지금은 (참조, 헤드리스 브라우저, 심지어 자동으로 페이지가 위에서 언급 한에 링크 ‘HTML 스냅 샷 생성’을)를 확인 나는 그것이 하드 코어 SEO들에 대한 방법이라고 생각 때문에.#!hashes_escaped_fragment_


답변

자바 스크립트를 사용하여 페이지의 메타 태그를 변경할 수 있습니다. 다음은 Javascript 전용 접근 방식입니다.

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

Google이 위의 코드에 대해 이러한 클라이언트 측 변경 사항에 대해 색인을 생성 함을 확인했습니다.


답변

메타 태그는 dom의 일부이며 액세스 할 수 있으며 변경 될 수 있습니다.하지만 검색 엔진 (메타 태그의 주요 소비자)은 자바 스크립트가 실행되지 않으므로 변경 사항을 보지 못합니다. 그래서 브라우저에 영향을 미치는 메타 태그 (새로 고침이 떠오른다)를 변경하지 않는 한, 이것은 거의 쓸모가 없을 수 있습니까?


답변

다음과 같이 가능해야합니다 (또는 $('meta[name=author]').attr("content");다음 과 같은 jQuery 사용 ).

<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>