2010-12-27 8 views
0

특정 사용자가 구성한 설정에 따라 Javascript를 사용하여 "메타 뷰포트"태그를 동적으로 만드는 iPhone 웹 응용 프로그램이 있습니다.noscript 블록 내 메타 뷰포트 태그

Javascript가 비활성화되어 있지만 적절한 방법을 찾을 수없는 경우 기본 메타 뷰포트 태그를 제공하고 싶습니다.

내가이 시도 :

<noscript> 
<meta name="viewport" content="initial-scale=1.0"> 
</noscript> 

그리고 그러나 그것은 noscript 분명히 HTML 문서의 HEAD 섹션에서 허용하지 않는 한, 유효 작동하지 않는 것 않습니다를 (또한 this question 보았다)

어떤 대안이 있습니까?

편집 : 이미 다음 , 기본 메타 뷰포트 태그를 가진 자바 스크립트와 함께를 제거 (또는 교체) 시도

. "거의"효과가 있습니다. 자바 스크립트로 기존의 뷰포트 메타 태그를 수정할 수 있습니다 (이 기술은 here으로 잘 설명되어 있습니다). 그러나 몇 가지 제한 사항이 있습니다. 주어진 속성의 값을 수정할 수는 있지만 이미 정의 된 속성을 장치가 "잊어 버릴"수 없습니다 (기본값으로 재설정). 또한 Javascript로 메타 태그를 제거하는 것만으로는 효과가 없습니다.

답변

3

까다 롭습니다.

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

<script> 
document.write('<meta name="viewport" content="initial-scale=2.0">'); 
</script> 

를 시도? (스크립팅이 활성화 된 경우 설정하려는 척도보다 2.0입니다)

합법적인지 여부에 대한 바인딩 정보는 찾을 수 없지만 HTML로 보입니다. 문제는 올바르게 구문 분석 될지 여부입니다. 그 외에는

, 나는 단지 두 가지 대안을 생각할 수 있습니다

  • 감지 자바 스크립트 서버 측 지원 및

  • 항상 메타 태그없이 두 개의 서로 다른 페이지, 하나, 하나를 제공 뷰포트 태그를 포함하고 을 제거하여 자바를 사용하여을 제거했습니다. 그래도 작동 여부는 알 수 없습니다.

+0

@Pekka : 나는 사실도 NOSCRIPT 생각하기 전에 두 번째 방법을 시도했다. 그러나 기본 메타 뷰포트 태그가 포함 된 다음 자바로 제거/수정/바뀌면 iPhone은 원래 메타 뷰포트 정의 :-( – Grodriguez

+0

)를 사용합니다. @Pekka : 서버 측에서 Javascript가 활성화되어 있는지 여부를 어떻게 알 수 있습니까? – Grodriguez

+0

@Grodriguez 어떤 서버 측 언어를 사용할 수 있습니까? –

2

HTML5를 사용할 수 있습니다. HTML5에서 <noscript>은 머리의 자식으로 허용되며 <meta>은 noscript의 하위 항목으로 허용됩니다.

는 여기를 참조하십시오 : http://dev.w3.org/html5/spec/scripting-1.html#the-noscript-element

+0

제안 해 주셔서 감사합니다. 나는 HTML5의 머리 부분에서 noscript가 허용된다는 것을 몰랐다. 슬프게도이 애플리케이션에서는 HTML5로 전환 할 수 없습니다. – Grodriguez