Development Tip

자바 스크립트에 PHP 에코 / 인쇄가 있습니까?

yourdevel 2021. 1. 7. 20:08
반응형

자바 스크립트에 PHP 에코 / 인쇄가 있습니까?


스크립트 태그 내부에서 html을 인쇄하고 싶다고 가정합니다.

이와 같은 소스

<div>foo</div>
<script>
print('<div>Print this after the script tag</div>');
</script>
<div>bar</div>

스크립트가 실행 된 후 브라우저에서 다음과 같이 보일 것입니다.

<div>foo</div>
<script>
print('<div>Print this after the script tag</div>');
</script>
<div>Print this after the script tag</div>
<div>bar</div>

이 목적을 위해 내 자신의 코드를 작성할 수 있지만 이것은 매우 간단한 문제처럼 보이기 때문에 내가 뭔가를 놓쳤거나 내 생각이 어떤 식 으로든 결함이 있고 의도적으로 인쇄가 생략되었다고 생각합니다.

또한 다소 관련이 있습니다. 스크립트가 주변 스크립트 태그를 인식하는지 (또는 만들 수 있는지) 알고 싶습니다. 이 정보를 사용하면 인쇄 된 html 코드가 삽입 될 위치를 찾는 것이 훨씬 더 쉬워 질 것입니다.

명확히하기 위해 : 인쇄 기능을 작성하지 않아도됩니다. 이를 달성하기위한 기본 방법이 존재하는지, 그리고 그것을 놓쳤는 지 또는 그 대신 수행해서는 안되는 이유 만 알면됩니다.

편집 나는 질문을 통해 생각하지 않았다는 것을 깨달았습니다.

나는 내 사실을 똑바로 얻었고 이제 거의 모든 것이 작동하는 것 같습니다. 나는 원래 템플릿 내에서 인쇄 기능이 필요하다고 언급 했어야했다. 나는 템플릿 엔진 실험을하고있다. 일반 HTML에서 스크립트를 분리하고 분할 된 html sans 스크립트를 스크립트 출력과 연결하여 문제를 해결했습니다.

코드를 작성하면서 js의 비동기 특성 때문에 모든 것이 순조롭게 진행되지 않는다는 것을 알았습니다. PHP에서와 마찬가지로 템플릿에서 모든 종류의 js 마술을 할 수 있기를 기대하고 있었던 것 같습니다. 실제로 템플릿 내에서 절대 안전한 방식으로 비동기 코드를 지원하는 것 같으면 더 많은 생각이 필요합니다.


당신은 사용해야합니다 document.write()

<div>foo</div>
<script>
document.write('<div>Print this after the script tag</div>');
</script>
<div>bar</div>

문서를 작성중인 경우에만 작동합니다. 문서가 렌더링되면를 호출 document.write()하면 문서가 지워지고 새 문서 작성이 시작됩니다. 이것이 귀하의 사용 사례 인 경우이 질문에 제공된 다른 답변을 참조하십시오.


document.write 를 사용할 수 있지만 좋은 방법은 아닙니다. 실행되는시기에 따라 전체 페이지가 지워질 수 있습니다.

다음 Element.innerHtml과 같이 사용해야 합니다.

<div>foo</div>
<span id="insertHere"></span>
<div>bar</div>

<script>
document.getElementById('insertHere').innerHTML = '<div>Print this after the script tag</div>';
</script>

// usage: log('inside coolFunc',this,arguments);
// http://paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
window.log = function(){
  log.history = log.history || [];   // store logs to an array for reference
  log.history.push(arguments);
  if(this.console){
    console.log( Array.prototype.slice.call(arguments) );
  }
};

window.log사용 하면 console.log와 동일한 작업을 수행 할 수 있지만 사용중인 브라우저가 먼저 console.log를 사용할 수 있는지 확인하여 호환성 문제 (IE 6 등)로 인해 오류가 발생하지 않도록합니다. .).


당신이 사용할 수있는

function echo(content) {  
    var e = document.createElement("p");
    e.innerHTML = content;
    document.currentScript.parentElement.replaceChild(document.currentScript, e);
}

echo 함수를 호출 한 현재 실행중인 스크립트를 content 인수의 텍스트로 대체합니다.


에서 자바 스크립트 출력에 w3school의 페이지 ,

JavaScript는 다양한 방식으로 데이터를 "표시"할 수 있습니다.

window.alert ()를 사용하여 경고 상자에 쓰기.

document.write ()를 사용하여 HTML 출력에 쓰기.

innerHTML을 사용하여 HTML 요소에 쓰기.

console.log ()를 사용하여 브라우저 콘솔에 쓰기.


document.write또는 심지어 사용할 수 있습니다 console.write(디버깅에 좋습니다).

But your best bet and it gives you more control is to use DOM to update the page.


$('element').html('<h1>TEXT TO INSERT</h1>');

or

$('element').text('TEXT TO INSERT');

this is an another way:

<html>
<head>
    <title>Echo</title>
    <style type="text/css">
    #result{
        border: 1px solid #000000;
        min-height: 250px;
        max-height: 100%;
        padding: 5px;
        font-family: sans-serif;
        font-size: 12px;
    }
    </style>
    <script type="text/javascript" lang="ja">
    function start(){
        function echo(text){
            lastResultAreaText = document.getElementById('result').innerHTML;
            resultArea = document.getElementById('result');
            if(lastResultAreaText==""){
                resultArea.innerHTML=text;
            }
            else{
                resultArea.innerHTML=lastResultAreaText+"</br>"+text;
            }
        }

        echo("Hello World!");
        }
    </script>
</head>
<body onload="start()">
<pre id="result"></pre> 
</body>


//We would create our own function in js like echo "Hello world".

function echo( ...s ) // write for more detail below
 { 
   for(var i = 0; i < s.length; i++ ) {


    document.write(s[i] + ' '); // quotes for space
   }

 } 

  // Now call to this function like echo

 echo('Hellow', "World");

Note: ... dotes for access more parameters in one as object/array, to get value from object/array we should iterate the whole object/array by using for loop or other method but for is common, like below and s is name i just kept you can write whatever you want.


l('output text example')

after once defining

l=console.log

seems fine to me for a quick hacksy JS debugging in the browser console.

Based on @Lil' Bits’s answer – thanks!

ReferenceURL : https://stackoverflow.com/questions/13633085/is-there-a-php-echo-print-equivalent-in-javascript

반응형