Как вызвать функцию - PullRequest
       27

Как вызвать функцию

0 голосов
/ 19 сентября 2011

Я искал ответ на этот вопрос уже 4 часа, но безуспешно.

Хорошо, я пытаюсь выполнить функцию, которая что-то делает, если пользователь используетопределенный браузер.

У меня есть скрипт, используемый для определения браузера, версии и операционной системы в разделе заголовка страницы, и он работает.

Если я использую приведенный ниже код в телемоей страницы это работает нормально.

<script type="text/javascript">
if (BrowserDetect.browser == "Chrome")
{
   document.write("You're using Chrome")
}
else
{
    document.write("You're not using Chrome")
}
</script>

Но если я помещу код во внешнюю таблицу скриптов, как мне его использовать?Я попытался поместить его в функцию и вызвать эту функцию под нагрузкой, используя этот код.

<body onload="BrowserDetect();">

Обратите внимание, что внешний раздел скриптов вызывается в разделе заголовка моей страницы.

Иэто код во внешнем скриптовом листе.

function BrowserDetect()
{
    if (BrowserDetect.browser == "Chrome")
    {
        document.write("You're using Chrome")
    }
    else
    {
        document.write("You're not using Chrome")
    }
}

Как видите, это тот же самый код, который работал, когда он был в теле веб-страницы.Но когда он помещается в функцию и вызывается под нагрузкой, он не работает.Почему?

Ответы [ 3 ]

3 голосов
/ 19 сентября 2011

Поскольку вы назвали вызываемый метод так же, как и используемый вами объект BrowserDetect.

Попробуйте

function BrowserDetectMethod()
{
    if (BrowserDetect.browser == "Chrome")
    {
        document.write("You're using Chrome")
    }
    else
    {
        document.write("You're not using Chrome")
    }
}

и вызовите его с помощью

<body onload="BrowserDetectMethod();">
1 голос
/ 19 сентября 2011

Попробуйте изменить имя функции на значение, отличное от BrowserDetect.

0 голосов
/ 21 сентября 2011

Настоящая проблема, с которой я столкнулся с самого начала, заключалась в том, что мои сценарии работали, если они были на странице, но я хотел, чтобы они были во внешней таблице стилей, а если они были во внешней таблице сценариев, сценарии не выполнялись.т работа.Поэтому я узнал, как это исправить, и я перечислю ниже все, что я сделал, чтобы все вышеперечисленное работало идеально.

Для тех из вас, кто интересуется, как я обнаружил браузер, я получил его с этого сайта:http://www.quirksmode.org/js/detect.html. Это работает намного лучше и легче обнаруживать его с помощью обычного javascript.

Прежде всего, функция должна иметь имя, отличное от BrowserDetect;Я назвал его BrowserDetectMethod, как предложено Габи.

И, во-вторых, если я собираюсь включить функцию во внешнюю таблицу стилей, внешнюю таблицу стилей необходимо вызывать в bottom .страницы.Не в заголовке страницы, как я пытался.

В-третьих:

Я решил, что лучший способ прослушать браузер - это найти браузеры, с которыми я хотел связаться, а не те, с которыми я не работал.т.(поскольку существует любое количество браузеров, и я хотел связаться только с тремя)

Однако, используя вышеуказанный метод, я не смог этого сделать, потому что этот код не работает:

function BrowserDetectMethod()
{
    if (BrowserDetect.browser != "Chrome" && BrowserDetect.browser && "Safari" ||BrowserDetect.browser && "Firefox" )
    {
        document.write("You're not using a supported browser");
    }
    else
    {
         document.write("You're using a supported browser");
    }
}

Причина, по которой код не работает, состоит в том, что он не может содержать более одного логического оператора "и" в операторе if.

Поэтому мне пришлось добиться желаемого эффекта, вложив операторы ifвот так:

function BrowserDetectMethod()
{
    if (BrowserDetect.browser != "Chrome")
    {
        if(BrowserDetect.browser != "Firefox")
        {
            if(BrowserDetect.browser != "Safari")
            {
                document.write("You're not using a supported Browser");
            }
            else
            {
                document.write("You're using a supported Browser");
            }
        }
        else
        {
            document.write("You are using a supported Browser");
        }
    }
    else
    {
        document.write("You are using a supported Browser");
    }
}
...