【问题标题】:Blackberry BrowserField Issue -黑莓浏览器字段问题 -
【发布时间】:2012-03-14 12:52:29
【问题描述】:

我正在使用 'net.rim.device.api.browser.field2.BrowserField' 加载带有 2 个脚本的 html 页面。

  1. 脚本 1 (Jquery)
  2. 脚本 2(Jquery 移动版)

第二个脚本被加载了两次。就像脚本没有加载一样。根据其在 html 文件中的位置的次数。

例如:第 5 个位置的脚本文件将分别加载 5 次。

提前致谢。

【问题讨论】:

  • 我们在最多加载 5 个脚本文件时看到了相同的行为,第 5 个脚本文件被请求并加载了 5 次。
  • 脚本是否都是独立的 .js 文件,引用自 html 页面(未嵌入 <script> 元素)?
  • 天哪,我记得这个,太可怕了。更糟糕的是,我不记得如何临时修复它。

标签: html blackberry browserfield


【解决方案1】:

我一直在尝试复制,但失败了。考虑一下这个简单的 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.jsjs3.js分别是:

jsCount("js2");

jsCount("js3");

(您可以通过http://www.craigmj.com/bbtest/...找到他们)

我在 9700 模拟器和我的 9900 设备上得到了我期望的结果。

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

它在黑莓 5 操作系统上不起作用,但这似乎是因为 BB5 上的浏览​​器不支持script 标签。

我们能否弄清楚这个错误究竟在哪里以及如何重现?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多