1. 글로벌 변수를 활용합니다
이것은 Google 애드 센스와 같은 가장 쉬운 방법입니다.
코드 사본은 다음과 같습니다.
<script type = "text/javaScript"> Google_ad_client = 'pub-3741595817388494'; </script> <script type = "text/javaScript"src = "http : // pagead2. googlesyndication.com/pagead/show_ads.js"> </script>
단점은 글로벌 변수가 도입된다는 것입니다. 파일을 소개하는 방법에는 두 가지 변형이 있습니다.
// variation 1 : document.write를 사용하여 <script type = "text/javaScript"> google_ga_id = 'g6u7un8646xx'; document.write (unescape ( '%3cscript type = "text/javaScript"src = "http://www.google-analytics.com/ga.js"; </script> // variation 2 : dom을 사용하여 <script type = "text/javaScript"> g_beacon_atp = 'category = & userId = & channel = 112ad_id ='; hod </script> // 참고 : 위의 코드는 실제 애플리케이션을 기반으로 한 가상 데모 코드입니다.
참고 : 다양성 1은 여러 번 사용되며 일반적인 작문 방법은 다음과 같습니다.
<script type = "text/javaScript"> // 직접 탈출 : document.write ( '<script type = "text/javaScript"src = "test.js"> </script>'); // 또는 야후! 홈페이지 : document.write ( '<scr'+'ipt type = "text/javaScript"src = "test.js"> </scr'+'ipt>'); </script>
2. 스크립트 요소의 SRC를 얻고 구문 분석합니다.
모든 변수와 비교하여 다음과 같은 매개 변수를 선호합니다.
<script type = "text/javaScript"src = "test.js? a = b & c = d"> </script>
핵심 문제는 SRC 속성을 얻는 방법입니다.
첫 번째 방법은 스크립트에 ID 속성을 추가하고 ID를 통해 현재 스크립트를 얻은 다음 정기적으로 사용하여 SRC에서 매개 변수를 제거하는 것입니다. 단점은 HTML 4.01 사양에서 스크립트 요소에는 ID 속성이 없다는 것입니다. 이 단점은 결국 표준을 믿는 것보다 표준을 갖지 않는 것이 낫습니다.
두 번째 방법은 JS 파일 이름을 후크로 사용하는 것입니다. JS 코드에서 document.getElementsByTagName ( 'script')을 전달한 후 현재 JS 파일은 정기적으로 일치합니다. 이 방법은 정통이지만 고유 한 파일 이름이 필요합니다. 단점은 코드가 많고 정제되지 않으므로 성능에 약간의 영향을 미칩니다.
방법 3은 메소드 1을 기반으로 사용자 정의 속성 데이터를 추가하는 것입니다.
<script id = "testscript"type = "text/javaScript"src = "test.js"data = "a = b & c = d"> </script>
test.js 파일에서 다음 줄을 사용하여 전달 된 매개 변수를 얻습니다.
var scriptargs = document.getElementById ( 'testscript'). getAttribute ( 'data'); 방법 4는 JS의 순차적 실행 메커니즘을 사용하는 것입니다 (JS 파일의로드는 동기식이거나 비동기식 일 수 있지만 실행될 때 문서 스트림에서 순서대로 실행해야합니다). 특정 JS 파일이 실행되면 "로드 된"JS 파일의 마지막 파일이어야합니다.
var scripts = document.getElementsByTagName ( 'script'); var currentscript = 스크립트 [스크립트 .length -1]; 방법 4는 방법 2보다 더 영리하고 천재적이다.
코드 단순화 및 성능의 관점에서 방법 3> 메소드 1> 메소드 4> 메소드 2
요약 : 표준에 대해 매우 관심이 있다면 방법 4를 권장하십시오. 나와 같은 표준을 완전히 준수 할 필요가 없다고 생각되면 방법 3을 권장하십시오.
테스트 프로그램을 작성하십시오
<! docType html> <html> <script src = "a2.js"> </script> <script src = "a2.js"> </script> <script src = "a2.js"> </script> <script src = "a2.js"> </html>
A2.JS
var scripts = document.getElementsByTagName ( 'script'); var currentscript = scripts.length; alert (currentscript);
별도로 인쇄하십시오
1 2 3
3. 영감 계획
당신이 John Resig의 충성스러운 팬이라면, 아마도 지난 8 월에 논의 된 "스크립트 태그"를 여전히 기억할 것입니다. John Resig는 우리를 위해 상상의 문을 열어줍니다. 이 기사의 질문에 대해서는 다음과 같은 "사악한 길"을 사용하여이를 달성 할 수 있습니다.
<script type = "text/javaScript"src = "test.js"> tb.someapp.scriptArgs = 'a = b & c = d'; </스크립트>
test.js 파일에서 :
tb = {}; tb.someapp = {}; var scripts = document.getElementsByTagName ( "script"); eval (scripts [scripts.length -1] .innerhtml);이것은 tb.someapp.scriptargs 변수에 매개 변수를 저장합니다.
매개 변수가 많지 않으면이 작업을 수행 할 수도 있습니다.
<script type = "text/javaScript"src = "test.js"> a = b & c = d </script>
JS 파일에서 :
var scripts = document.getElementsByTagName ( "스크립트"); var scriptargs = scripts [scripts.length -1] .innerhtml.replace (/[s]/g, '');
상상력은 끝이없고, onload를 사용할 수도 있습니다.
<script type = "text/javaScript"src = "test.js"onload = "tb.somefun ( 'a = b & c = d')"> </script>
JS 파일에서 함수를 정의합니다.
tb = {}; tb.somefun = function (arg) {// code};위의 코드는 비 EIE 브라우저에서 올바르게 실행될 수 있습니다. 멍청한 IE의 경우 몇 줄의 코드를 추가해야합니다.
if (wind 평가 (스크립트 [scripts.length -1] .getAttribute ( 'onload'));}