html - 정리 - setattribute 사용법



여러 줄의 문자열 속성 값, HTML (4)

PHP를 사용할 수 있습니까? 그렇다면 다음과 같이 할 수 있습니다.

<a href="<?= "very "
             ."long "
             ."string" ?>">

https://src-bin.com

HTML에서 다음과 같이 작성할 수 있습니까?

<a href="bla bla bla bla\
        bla bla bla bla">....</a>

아이디어는 가독성을 높이기 위해 문자열 속성을 여러 줄로 나누는 것입니다.


Answer #1

아니, 불가능합니다. HTML에는 "줄 연속"문자가 없습니다. 속성 값에 줄 바꿈을 사용하면 브라우저 동작이 다양하지만 최신 브라우저는 HTML5에 문서화 된 방식으로 동작합니다. 줄 바꿈이 허용되며 문자 그대로 사용되어 DOM에 줄 바꿈으로 저장됩니다. 이것은 href 속성 값이 손상되어 작동하지 않는다는 것을 의미합니다.

href 값의 문제를 완화하기 위해 최선을 다하는 것은 따옴표를 사용하지 않고 그 자체의 행에 이러한 값을 넣는 것입니다.

<a href=
http://www.example.com/some-long-path/and-so-on
>link</a>

대조적으로, 다음은 현대적인 브라우저에서 두 줄의 툴팁으로 허용됩니다. 요점은 일반 구문이 줄 바꿈을 허용하지만 결과가 있으며 특성의 특정 구문이 줄 바꿈을 금지 할 수 있다는 것입니다.

<a href=foo title="Hello
world">bar</a>

Answer #2

예, 가능합니다 : https://.com/a/38874964/3135511 비밀은 대신 스페이스 바를 사용하는 것뿐 아니라 라인 브레이크를 사용하는 것입니다

<a href="
	bla 
	bla bla 
	bla bla bla 
	bla bla 
	bla
	">....</a>
^ - 코드를 시험해보고 .... 링크를 찾아보세요 . bla bla bla bla bla bla bla bla bla처럼 읽어야합니다.

배경:

  • 문자열의 공백은 % 20으로 이스케이프되며 +에 머 무르지 만 줄 바꿈 으로 사용되는 공백은 무시 / 필터링됩니다.

    당신이 문자열에 그것들을 원한다면, 탭에 대해서는 %09 , 일부 CR / LF 윈도우에는 %0A%0D%0A%0D . -> 이것은 2 바이트의 1 바이트의 C 레지스터와 2 바이트의 char 형의 문자입니다.


Answer #3

줄 사이에 공백이 없으면 @laaposto 제안을 사용할 수 있습니다.

해당 규칙을 따르고 싶지 않으면 javascript를 사용하여 공백을 제거해야합니다.

var anchor = document.getElementsByTagName("a");

for(var i=0; i<= anchor.length; i++) {
    var href = anchor[i].href.replace(/%20/g,'');
    anchor[i].href = href;     
}

피들 데모

또는 jQuery로 더 쉽게 :

var href = $('a').attr('href').replace(/ /g,'');
$('a').attr('href', href);

피들 데모





split