2013-11-26 2 views
0

PHP + HTML에서 이상한 문제가 있습니다.target = "_ blank"로 PHP 링크 문제

이 코드를 사용하면 자동으로 상품 이미지를 생성하고 _blank 타겟을 가진 <a> 태그를 만들 수 있습니다. 멋지게 작동하지만 빈 페이지에서는 링크가 타겟팅되지 않습니다.

PHP 이것은 PHP가 문제가되지 않습니다

<?php if ($item->getPrimaryImage()) :?> 
<div class="image-container"> 
    <?php if ($item->getPrimaryLink()) : ?><a href="<?php echo $item->getPrimaryLink()->getUrl(); ?>" target="_blank"><?php endif; ?> 
       <img src="<?php echo $item->getPrimaryImage()->getSource(); ?>" alt="" class="mosaic-image" /> 
       </a> 
</div> 
+0

생성 된 HTML 코드의 해당 부분을 표시해야합니다. '$ item-> getPrimaryLink() -> getUrl();'에 문제가있어 유효하지 않은 무언가가 반환 될 수 있습니다. –

답변

0

다소 감가 상각되기 때문에 새 창에서 링크를 여는 것은 좋지 않은 방법입니다. 대신 자바 스크립트를 사용하여, 여기에 예입니다 : 창을 연 후 false를 반환

<a href="mylink.htm" onclick="window.open('mylink.htm');return false;">click me</a>

도 변화하는 현재 페이지를 중지하지만, 일반 href="" 속성으로 SEO 컨텍스트를 유지 할 수 있습니다.

+0

'_blank'는 [htlm5 specs] (http://www.w3.org/TR/html5/browsers.html#valid-browsing-context-name-or-keyword)에 따라 여전히 유효하지만 대부분 링크를 새 창에서 열어야하는지 여부를 사용자가 직접 선택할 수 없게하는 나쁜 생각. 'target = "_ blank"를 js로 바꾸십시오. 'window.open'을 수행하고 싶습니다. - 목표'_blank'가 제거되었는지 확인하지 않습니다. 플러그인에 의해, 그 행동을 억제하는 것은 확실히 불가능하기 때문에, 더 심해집니다. –

+0

@ t.niese 아직 html5 스펙에 포함되어 있지만, XHTML 1.0 Strict와 XHTML 1.1에서는 더 이상 사용되지 않으며 기본적으로 탈출구에 있다고 생각됩니다. 사용자 경험에 관해서는, 이것은 다른 주제이고, 상이한 요구는 상이한 접근법을 요구한다. 예를 들어 웹 앱에서는 이것이 문제가되지 않을 수도 있습니다. – Alfie

+0

'html4'에서'XHTML 1.x' 로의 원래의 움직임은'XHTML'의 제한과'XHTML 2'의 개발의 지연 때문에'html5'가 새로운 표준이되어 버렸습니다. –

0

. 코드 아무 문제가 없다, 동일한 출력이 jsfiddle

http://jsfiddle.net/3e65q/

<div class="image-container"> 
    <a href="http://www.google.com" target="_blank">hello</a> 
</div> 

에서 만든 그리고 그것은 새 창 (내 경우에는 새 탭)에서 열리지 만 예상대로 작동합니다.

+0

'_new'과'_blank'는 동일하지 않습니다. '_blank'는 특별한 의미가 있습니다 (새 창/탭에서 링크를여십시오),'_new'가 아닙니다 (목표 이름이'_new' 인 창에 링크가 열립니다). –

+0

t.niese 예에서 _blank를 쓰고 싶었지만 다른 대답을 읽으면 마음이 엉망이되었습니다. 댓글 주셔서 감사합니다. –

관련 문제