1)
새 창..을 띄울 때,
이쪽창에서 사용하는 함수를 사용하게 하는 방법을 두가지 알고 있는데요,

2)
하나는 저쪽에 이쪽 함수의 포인터(?)를 찍어주는 "그거빌려쓸께요"방법과

나머지 하나는 저쪽 스크립트 태그 내에 함수내용을 직접 그려(?)주는 방법입니다.

3)
첫번째 방법은 이쪽 창이 닫히면 작동이 안되는 문제가 있어서
두번째 방법을 쓰기로 결정했는데요,

4)
두번째 방법에서는..
이쪽 함수가 잘(?) 사용하고 있던 변수들인데..
해당 변수의 이름들이 함수 내에서 var 선언한 것들이라

변수이름과 변수값을 전달해줘야하는 문제(?)가 생겨서요..

5)
물론, 그런 문제 외에,
javascript 코드 최적화를 시키면 변수 이름들이 바뀌는 문제도 감당할 수 있어야 했습니다..

6)
어쨌든, 함수 내에서 사용하고 있던 변수 이름들을 수집해
저쪽에 보내주기 위한 준비과정이 필요했죠.

*참고*
두 내용에 다른 건 textReceiver 를 위한 id 부분과 함수 이름 정도입니다.
실제로는 최적화한 후에 해당 이름만 바꿨죠.

7)
- optimize(최적화) 전.. -
...


<div id=D120404_3>output</div>
<script >

var show120404_3;

function argumentReceiver120404_3() {
  //    var ar = arguments,
  //        i, ov = '';
  //    for (i = 0; i < ar.length; i++) {};
}

function init120404_3() {
  var abrakatabra = 'a',
      alkemist = 2;

  function varReady() {
    argumentReceiver120404_3(abrakatabra, alkemist)
  }

  //  varReady();
  show120404_3 = function() {
    var functionString = varReady + '',
        p1, p2;
    p1 = functionString.indexOf('{');
    p1 = functionString.indexOf('(', p1);
    p2 = functionString.indexOf(')', p1);

    document.getElementById('D120404_3').innerHTML = 'var ' + functionString.substring(p1 + 1, p2) + ';'
  }

}

init120404_3();
show120404_3();

</script>


...


output


...

8)
- optimize 후.. -
...


<div id=D120404_4>output</div>
<script>

var show120404_4;

function argumentReceiver120404_4() {}
function init120404_4() {
  function d() {
    argumentReceiver120404_4(e, f)
  }
  var e = "a",
      f = 2;
  show120404_4 = function() {
    var b = d + "",
        a, c;
    a = b.indexOf("{");
    a = b.indexOf("(", a);
    c = b.indexOf(")", a);
    document.getElementById("D120404_4").innerHTML = "var " + b.substring(a + 1, c) + ";"
  }
}
init120404_4();

show120404_4();
</script>


...


output


...

9)
훌륭(?)하게 성공한 정도는 아닙니다만,
다행히.. 함수에 첨부되는 변수를 이용하는 방법이 가능했습니다.

10)
여기서 주의(?)할 점이,
argumentReceiver 라는 빈 함수인데요,

해당 함수가 함수 내에 있으면
최적화될 때 같이 딸려들어가,

argumentReceiver 함수를 부른다는 구실을
최적화과정에서 삭제될 수 있다는 부분입니다.

그 점만 최대한 주의한다면
최적화를 해도 큰 무리가 생기지는 않을겁니다.

11)
.. 이런 방법으로,
"새 창"에서도 기존 창에 있던 함수를 전달할 수 있었습니다.

아니, 새 창에 document.write 를 하려고 고생(?)할 여력을
나름 줄일 수 있었죠.

12)
나중에.. 뭐랄까요... javascript 에서
이런 문법 사용이 중지되지 않았으면..하는 소소한 바램은 있습니다.

.. 뭐, 제 권한 밖의 문제라서.. 좀 그렇긴 하네요.

easyBow killofki@.


Posted by killofki
,