代码之家  ›  专栏  ›  技术社区  ›  Amirshk

Windows边栏小工具中的JQuery和flot

  •  1
  • Amirshk  · 技术社区  · 16 年前

    flot

    当我在FF中运行这个小工具时,图形绘制得很好。但当我从小工具运行它时,它不起作用。我知道JQuery代码正在工作,因为我可以使用它来更改html、样式等。

    所以问题出在牙线部分。

    有什么想法吗?思想?


    html代码:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <script language="javascript" type="text/javascript" src="js/jquery.js"></script>
        <script language="javascript" type="text/javascript" src="js/jquery.flot.js"></script>
        <script language="javascript" type="text/javascript" src="js/Docked.js" ></script>
        <link href="css/Docked.css" rel="stylesheet" type="text/css" />
    </head>
    <body onload="CheckDockState();">
        <g:background id="imgBackground">
        <div id="gadgetContent">
        </div>
        </g:background>
    </body>
    </html>
    

    // Gadget width and height.
    var gadgetWidth = 800;
    var gadgetHeight = 800;
    
    // Amount to scale gadget when docked or undocked.
    var scaleDocked = 1;
    var scaleUndocked = 2;
    
    // Amount of time desired to perform transition (in seconds).
    var timeTransition = 2;
    
    // Declare the dock and undock event handlers.
    try
    {
        System.Gadget.onDock = CheckDockState;
        System.Gadget.onUndock = CheckDockState;
    }
    catch(err){}
    
    // --------------------------------------------------------------------
    // Check the gadget dock state; set the gadget style.
    // --------------------------------------------------------------------
    function CheckDockState()
    {
        try
        {
            var oBackground = document.getElementById("imgBackground");
            System.Gadget.beginTransition();
    
            var oBody = document.body.style;
            if (System.Gadget.docked)
            {
                oBody.width = gadgetWidth*scaleDocked;
                oBody.height = gadgetHeight*scaleDocked;
    
                oBackground.src = "../images/bg_docked.png";
    
                //txtDocked.innerText = 'Docked';
                gadgetContent.innerHTML = 'Docked <button onclick="ShowChart();">press me</button>';
                gadgetContent.className = 'gadgetDocked';
            }
            else
            {
                oBody.width = gadgetWidth*scaleUndocked;
                oBody.height = gadgetHeight*scaleUndocked;  
    
                oBackground.src = "../images/bg_undocked.png";
    
                //txtDocked.innerText = 'Undocked';
                gadgetContent.innerHTML = 'Docked <button onclick="ShowChart();">press me</button>';
                gadgetContent.className = 'gadgetUndocked';
            }
            System.Gadget.endTransition(System.Gadget.TransitionType.morph, timeTransition);
        }
        catch(err)
        {
            // in a browser, some variables are different/missing then in the gadget, so i'm using this
            gadgetContent.innerHTML = 'Docked <button onclick="ShowChart();">press me</button>';
        }
    }
    
    function ShowChart()
    {
        var d1 = [];
        for (var i = 0; i < 14; i += 0.5)
            d1.push([i, Math.sin(i)]);
    
        var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
    
        // a null signifies separate line segments
        var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];
    
        // just to see the jquery works
        $("#gadgetContent").width(200);
        $("#gadgetContent").height(200);
    
        jQuery.plot($("#gadgetContent"), [ d1, d2, d3 ]);
    }
    
    2 回复  |  直到 16 年前
        1
  •  1
  •   Andy E    16 年前

    IE不支持 <canvas> 元素,但flot支持 excanvas

    <script language="javascript" type="text/javascript" 
        src="js/excanvas.min.js"></script>
    

    另外,不要把你的 g:background

    <g:background id="imgBackground"></g:background>
    <div id="gadgetContent"> 
    </div>
    

    附加说明,仅供参考- beginTransition() endTransition() 已弃用,在Windows 7中不会执行任何操作。那是因为变形看起来有点粗糙。你可以把它留给Vista用户,但我只是想让你知道。

        2
  •  0
  •   Alex    16 年前

    形象

    http://code.google.com/apis/chart/image_charts.html

    我不知道他们的交互式图表API如何处理Windows小工具。

    推荐文章