2011-12-21 3 views
1

javascript를 html 매개 변수에 삽입하는 적절한 방법을 찾고 있습니다. 이것은 내가 뭘하려고 오전의 예입니다 : 내가 일할 수 이러한 방식으로 PHP를 내장 알고자바 매개 변수를 HTML 매개 변수에 포함하기

<img src="source.png" height="<script> if(screen.width == 1920) 
           {document.write('60px');}</script>" 
           title="icon"/> 

,하지만 난 그것을 자바 스크립트와 함께 작동하도록 얻을 수없는 것. 문제에 대한 나의 제한된 지식은 비난하는 것이고, 나는이 문제를 해결하는 데 도움이 필요하다. 감사.

+0

그렇게 할 수 없습니다. –

+0

이와 같은 응용 프로그램을 작동시키는 데 유용한 트릭이나 해결 방법이 있습니까? – user981053

답변

4

id="sourceImg"이 요소에 추가되었으므로, 이 페이지 당 요소마다 고유해야합니다. 이렇게하지 않으면 Javascript가 어떤 요소를 선택해야할지 알 수 없으므로 선택합니다. 하나가 마크 업이 페이지의 소스에 빠지고, 또는 window.onload 이벤트 처리기에서 후에 실행하는 데 필요한

<img id="sourceImg" src="source.png" title="icon"> 

<script> 
if (screen.width == 1920) { 
    document.getElementById('sourceImg').style.height = '60px'; 
} 
</script> 

. img 요소를 사용할 수 있기 전에 실행되면 오류가 발생합니다.

참고 - JohnFx의 방법 그 아래 코멘트에 대해 설명입니다 :

<img id="sourceImg" src="source.png" title="icon" onload="sizeMe()"> 

<script> 
function sizeMe() { 
    if (screen.width == 1920) { 
    document.getElementById('sourceImg').style.height = '60px'; 
    } 
} 
</script> 

이것은 img 요소의 onload 핸들러를 사용합니다. onload="", onclick="" 등과 같은 인라인 이벤트 처리기는 일반적으로 유지 관리가 어렵다고 간주됩니다. 그러나 위의 예제는 데모로 작동해야하며 다른 경로는 페이지로드, DOM 요소 가용성 및 간단한 예제보다 이해하기 어려울 수있는 기타 세부 사항을 이해하는 것과 관련이 있습니다. 기술적으로

편집

그리고, 당신이 할 수 있습니다 :

http://jsfiddle.net/pdN3y/

<img id="sourceImg" 
    onload="if(screen.width < 1920) this.style.width='60px';" 
    src="http://upload.wikimedia.org/wikipedia/commons/thumb/a/ae/001_Jornal_Monsenhor_A_Comarca_23_de_Marco_de_1947.jpg/762px-001_Jornal_Monsenhor_A_Comarca_23_de_Marco_de_1947.jpg" 
    title="icon"> 
, 나는 변화가 더 분명하게하기 위해 if 문을 변경했습니다.

그러나 이 아닙니다. 침입하는 것은 나쁜 생각이고 나쁜 습관입니다. 페이지 로딩과 DOM 가용성을 알아내는 데 시간을 할애하여 보냈습니다.

+0

이것은 실제로 올바른 방법입니다. HTML 태그 안에 Javascript를 삽입 할 수 없습니다. – keybored

+0

DOM 요소가로드 된 후에 만 ​​실행되도록이 함수를 추가 할 수 있습니다. – JohnFx

+0

저에게 적절한 방법을 제공해 주셔서 감사합니다. – user981053

0

이렇게하면 안됩니다. PHP가 방해 받고 있습니다. 이 작업을 수행하는 방법에는 여러 가지가 있으며 접근 방법을 변경하면됩니다.

<script> 
    document.write("<img src='source.png' title='icon' " + screen.width == 1920 ? "height='60px'" : "" + " />"); 
</script> 
+0

오, 나는 요소를 출력하는 'document.write'가 실제로 현대적인 실습이라는 것을 모릅니다. 사용할 수있는 더 많은 적절한 방법을 가지고 ... –

+0

나는 절대적으로 동의합니다. 내가 말했듯이, 나는 그의 접근법을 교정하여 그 효과가 나타났습니다. 한 언어에서 다른 언어로 전환하는 것은 매우 개인적인 경험이며 때로는 새로운 언어로 "받아 들일 수있는"관용어가 아니더라도 새로운 언어로 번역 된 관용구를 보는 것이 도움이 될 수 있습니다. – drdwilcox

관련 문제