2016-04-04 2 views
0

У меня есть 2 сценария, которые я бы хотел использовать для любой ширины экрана менее 990 пикселей, а другой для чего-то большего. Эти сценарии исходят от третьей стороны и работают только с фактическим доменом (так что тестирование будет сложно для кого-то еще).Применить javascript только для мобильных телефонов или для рабочего стола

Вот сценарии они дали мне:

Для мобильного:

<script> 
    (function(){ 
     var t = document.getElementsByTagName("script")[0]; 
     var s = document.createElement("script"); s.async = true; 
     s.src = "//integration.nfusionsolutions.biz/client/jh/widget/module/accordionchart/nfaccordion"; 
     t.parentNode.insertBefore(s, t); 
    })(); 
    </script> 

Для рабочего стола:

<script> 
    (function(){ 
                var t = document.getElementsByTagName("script")[0]; 
                var s = document.createElement("script"); s.async = true; 
                s.src = "//integration.nfusionsolutions.biz/client/jh/widget/module/spottableextended/nfspotextended"; 
                t.parentNode.insertBefore(s, t); 
    })(); 
    </script> 

я пытался это за вид рабочего стола, но я знаю, что-то выключен ,

Для рабочего стола:

<script> 

        (function(){ 
     var viewportWidth = $(window).width(); 
     if (viewportWidth > 900) { 
                    var t = document.getElementsByTagName("script")[0]; 
                    var s = document.createElement("script"); s.async = true; 
                    s.src = "//integration.nfusionsolutions.biz/client/jh/widget/module/spottableextended/nfspotextended"; 
                    t.parentNode.insertBefore(s, t); 
       } })(); 
        </script> 

Any suggestions? 

UPDATE*** Code based on response below 

    <script> 
if ($(window).width() > 990) {  
    (function(){ 
                var t = document.getElementsByTagName("script")[0]; 
                var s = document.createElement("script"); s.async = true; 
                s.src = "//integration.nfusionsolutions.biz/client/jackhunt/widget/module/spottableextended/nfspotextended"; 
                t.parentNode.insertBefore(s, t); 
    })(); 
} 
else { 
    (function(){ 
     var t = document.getElementsByTagName("script")[0]; 
     var s = document.createElement("script"); s.async = true; 
     s.src = "//integration.nfusionsolutions.biz/client/jackhunt/widget/module/accordionchart/nfaccordion"; 
     t.parentNode.insertBefore(s, t); 
    })(); 
} 
</script> 
+0

Загружен ли jQuery? – Scimonster

+0

Сайт не использует jquery. – user1683991

+0

Если сайт не использует jQuery, вы не можете использовать объект jQuery, такой как '$ (window)', и ни один из таких методов, как '.width()'. [Получить размер экрана, текущей веб-страницы и окна браузера] (http://stackoverflow.com/questions/3437786/get-the-size-of-the-screen-current-web-page-and-browser- window) имеет метод ванильного javascript для получения размера окна. Обратите внимание, что этот javascript выполняется только один раз, и он проверяет ширину страницы, когда страница LOADS - если вы измените размер своего окна после этого, он не будет повторно выполнять код. – h2ooooooo

ответ

0

Вы можете использовать sompething, как это, если у вас есть размер экрана информации:

if ($(window).width() > 990) {  
    //Add your javascript for large screens here 
} 
else { 
    //Add your javascript for small screens here 
} 

EDIT: если действительно Jquery не может быть использована, вы можете попробовать использование:

window.innerWidth 

, чтобы получить ширину. Но это тоже будет зависеть от измененного окна ...!

+0

Я пробовал это, но он почему-то не работает. См. Обновленный код выше на основе вашего ответа. – user1683991

0

Если вы не используете jQuery, вы не можете использовать метод jQuery. Вместо этого используйте следующее условие:

if (window.innerWidth > 900) { // code for large screens 
+0

Я могу использовать Jquery, но он не работает на основе того, что я добавил ниже приведенного выше обновления. – user1683991

+0

Загружается ли jQuery перед сценарием? – Scimonster

+0

да есть. При проверке ошибки нет. – user1683991

Смежные вопросы