Nawet w nowoczesnych przeglądarkach może być przydatne. Właściwie natknąłem się dzisiaj na ten problem, właśnie dlatego, że chciałem uniknąć umieszczania javascript w moim html.
Mam stronę HTML, na której jest wyświetlana, na http://host/variable_app_name/pagenamektórej variable_app_namemoże mieć wiele wartości (wiesz, zmienna). Jeśli chce uzyskać dostęp do plików statycznych, musi użyć adresu URL takiego jak http://host/static/variable_app_name/filename, więc nie mogę określić lokalizacji pliku statycznego bez uprzedniego sprawdzenia lokalizacji przeglądarki, aby znaleźć wartość variable_app_name.
Aby utworzyć łącze do głównego pliku javascript, wykonuję następujące czynności:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></script>\n');
</script>
Powyższy kod wybuchnie nawet w najnowszej wersji Chrome, ponieważ tag skryptu zostanie zakończony w środku ciągu javascript, a pozostała część ciągu zostanie zinterpretowana jako html, tak jak poniżej:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js">
</script>
\n');
</script>
Jest wiele sposobów, aby to naprawić, ale ja lubię używać komentarza HTML.
Z komentarzem HTML:
<script type="text/javascript" >
<!--
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></script>\n');
-->
</script>
Podział ciągu javascript:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
document.write('<script type="text/javascript" src="/static/'+variable_app_name+'/pagename.js"></scr'+'ipt>\n');
</script>
Utwórz i dołącz znacznik script zamiast używać document.write:
<script type="text/javascript" >
var variable_app_name = window.location.pathname.split('/')[1];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = '/static/'+variable_app_name+'/pagename.js';
document.head.appendChild(script);
</script>
Lubię używać komentarza HTML, ponieważ jest to zwięzła zmiana i nie będzie potrzeby replikowania ani myślenia o każdym połączonym pliku.