Blackberry BrowserField Issue - - PullRequest
       17

Blackberry BrowserField Issue -

6 голосов
/ 14 марта 2012

Я использую «net.rim.device.api.browser.field2.BrowserField» для загрузки html-страницы с двумя сценариями.

  1. скрипт 1 (Jquery)
  2. скрипт 2 (Jquery mobile)

Второй скрипт загружается дважды.Это как скрипт загружается нет.раз в соответствии с его положением в html-файле.

Например: файл сценария 5-й позиции будет загружен 5 раз и соответственно.

Заранее спасибо.

1 Ответ

0 голосов
/ 26 июня 2012

Я пытался воспроизвести, и у меня не получается. Рассмотрим это простое приложение BB:

package mypackage;

import net.rim.device.api.browser.field2.BrowserField;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;

public class MyApp extends UiApplication
{
    final class MyScreen extends MainScreen
    {
        protected BrowserField browser;
        protected static final String URL = "http://www.craigmj.com/bbtest/index.html";

        public MyScreen()
        {        
            setTitle(URL);          
            browser = new BrowserField();
            add(browser);
            browser.requestContent(URL);
        }
    }

    public static void main(String[] args)
    {
        MyApp theApp = new MyApp();       
        theApp.enterEventDispatcher();
    }

    public MyApp()
    {        
        pushScreen(new MyScreen());
    }    
}

Теперь index.html , который он загружает, выглядит так:

<html>
<head>
    <script language="javascript" src="js1.js"></script>
    <script language="javascript" src="js2.js"></script>
    <script language="javascript" src="js2.js"></script>
    <script language="javascript" src="js3.js"></script>
    <script language="javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script language="javascript">
function loadFn() {
    res = "";
    for (var i=1; i<4; i++) {
        res += "js" + i + " = " + getCount("js"+i) + ", ";
    }
    document.getElementById("val").value = res;
}
    </script>
</head>
<body onLoad="loadFn();"><h1>Loading...</h1>
    <input type="text" id="val" name="val" size="30"/>
</body></html>

js1.js :

function jsCount(jsFile) {
    if ("undefined"==typeof window[jsFile]) {
        window[jsFile] = 0;
    }
    window[jsFile] = window[jsFile] + 1;
}

function getCount(jsFile) {
    return window[jsFile];
}

jsCount("js1");

И js2.js и js3.js :

jsCount("js2");

и

jsCount("js3");

(Вы можете найти их в http://www.craigmj.com/bbtest/...)

И я получаю ожидаемые результаты на симуляторе 9700 и на своем устройстве 9900.

js1 = 1, js2 = 2, js3 = 1,

Он не работает в ОС Blackberry 5, но, похоже, это связано с тем, что браузер на BB5 не поддерживает теги script.

Можем ли мы получить некоторую ясность относительно того, где и как эта ошибка может быть воспроизведена?

...