Как проверить, что Jquery уже загружен на страницу в xslt - PullRequest
0 голосов
/ 03 января 2012

Мне нужно проверить, загружен ли Jquery.JS, если нет, то загрузить его.Приведенный ниже код отлично работает в моем файле .aspx, но мне нужно реализовать то же самое в моем файле .xslt. Выдает ошибку при работе в xslt,

ASPX рабочий код

 <script type="text/javascript">
   window.jQuery || document.write('<script src="JQuery/jquery-1.3.2.min.js">\x3C/script>')
  </script>    
<script type="text/javascript">
    $(document).ready(function() {
        alert("hi");
    });
  </script>  

Если я пишу тот же код aspx в xslt, выдается ошибка «Tag not not closed»

XSLT code:

  <script type="text/javascript">
 **line1**     (window.jQuery ===  undefined) and document.write(unescape('%3Cscript src="/js/jquery.js"'))
</script>
  <script type="text/javascript">
    $(document).ready(function() {
    alert("hi");
    });
  </script>

Ошибки: ожидаемые;в строке 1.

Есть предложения?

Спасибо, ОБНОВЛЕНО Приведенный ниже код работает

<script type="text/javascript">
      if(typeof jQuery=="undefined")
      {
      document.write(unescape("%3Cscript src='/js/jquery.js' type='text/javascript'%3E%3C/script%3E"));
      }     
    </script>     

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Проблема в коде XSLT, который вы нам не показали .

Я попытался и не смог воспроизвести сообщенную ошибку - это преобразование выполняется без проблем:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
    <script type="text/javascript">  **line1**     (window.jQuery ===  undefined) and document.write(unescape('%3Cscript src="/js/jquery.js"')) </script>
    <script type="text/javascript">     $(document).ready(function() {     alert("hi");     });   </script>
 </xsl:template>
</xsl:stylesheet>

При применении к любому документу XML (не используется), результат будет таким, как ожидалось :

<script type="text/javascript">  **line1**     (window.jQuery ===  undefined) and document.write(unescape('%3Cscript src="/js/jquery.js"')) </script>
<script type="text/javascript">     $(document).ready(function() {     alert("hi");     });   </script>
1 голос
/ 04 января 2012

попробуйте следующий код,

<script type="text/javascript">
    if (typeof jQuery == 'undefined') {
        (function() {var jq = document.createElement('script');jq.type = 'text/javascript';jq.async = true;jq.src = '/js/jquery.js';var s = document.body.getElementsByTagName('script')[0];s.parentNode.insertBefore(jq, s);})();
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...