Динамически загружать Jquery на страницу .js - PullRequest
2 голосов
/ 13 апреля 2010

Пожалуйста, извините, если я здесь простой, я хочу создать простой виджет, к которому люди могли бы получить доступ со своих сайтов - например, скопировав / вставив что-то вроде

<script language="javascript" src="test2.js"></script>
<div id="test"></div>

в любом месте на своих веб-страницах. где динамически заполняется через Jquery и функции в / на test2.js.

Я могу сделать это, если JQuery действительно «напечатан» на странице test2.js, но я не могу заставить работать какие-либо функции JQuery, если я пытаюсь включить / вызвать JQuery динамически. Как вы вызываете JQuery через javascript, а затем заставляете его работать с функциями на странице?

И / или есть ли простой способ динамически добавить <<code>div id="test"></div>? Конечно, я могу body.append и т. Д., Но это только добавляет внизу страницы. Есть ли способ .append в позиции, где скрипт включает

<script language="javascript" src="test2.js"></script>

действительно размещен?

Надеюсь, у меня есть смысл.

Ответы [ 2 ]

5 голосов
/ 13 апреля 2010
function loadjscssfile(filename, filetype) {
        if (filetype == "js") { //if filename is a external JavaScript file
            var fileref = document.createElement('script')
            fileref.setAttribute("type", "text/javascript")
            fileref.setAttribute("src", filename)
        }
        else if (filetype == "css") { //if filename is an external CSS file
            var fileref = document.createElement("link")
            fileref.setAttribute("rel", "stylesheet")
            fileref.setAttribute("type", "text/css")
            fileref.setAttribute("href", filename)
        }
        if (typeof fileref != "undefined")
            document.getElementsByTagName("head")[0].appendChild(fileref)
    }

    loadjscssfile("jquery-1.4.2.js", "js") //dynamically load and add this .js file

Ваш код jquery должен быть помещен внизу страницы, чтобы дождаться, пока библиотека jquery будет прикреплена к заголовку

0 голосов
/ 13 апреля 2010

Относительно вашего вопроса, можно ли динамически добавлять <div id="test"></div> в позиции сценария:

Если вы вызываете document.write в своем скрипте, то это содержимое вставляется в документ после скрипта.

например:.

<html>
<head></head>
<body>
   <div id="first">
       <div id="second">
           <script type="text/javascript">
               document.write('<h2>test</h2>');
           </script>
      </div>
   </div>
</body>
</html>

Результаты в

<html>
<head></head>
<body>
   <div id="first">
       <div id="second">
           <script type="text/javascript">
               document.write('<h2>test</h2>');
           </script>
           <h2>test</h2>
      </div>
   </div>
</body>
</html>
...