Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用服务器端JavaScript并尝试获取DOM上元素的属性_Javascript_Html_Canvas_Serverside Javascript_Exacttarget - Fatal编程技术网

使用服务器端JavaScript并尝试获取DOM上元素的属性

使用服务器端JavaScript并尝试获取DOM上元素的属性,javascript,html,canvas,serverside-javascript,exacttarget,Javascript,Html,Canvas,Serverside Javascript,Exacttarget,我使用服务器端JavaScript与数据交互。例如: <script runat="server"> var subscriberScoringHistoryDE = DataExtension.Init("de_name"); var rows = subscriberScoringHistoryDE.Rows.Retrieve(); for (var i = 0; i < 5; i++) {

我使用服务器端JavaScript与数据交互。例如:

<script runat="server">
        var subscriberScoringHistoryDE = DataExtension.Init("de_name");
        var rows = subscriberScoringHistoryDE.Rows.Retrieve();
        for (var i = 0; i < 5; i++)
        {

        }
</script>

var subscriberCoringHistoryDE=DataExtension.Init(“de_name”);
var rows=subscriberCoringHistoryDE.rows.Retrieve();
对于(变量i=0;i<5;i++)
{
}
上面的代码将运行,因为它正在访问我们服务器上的JSAPI。因此,不管怎样,以上情况都很好。我遇到的问题是,如果我将下面的内容与上面的内容结合起来:

<script>
        var barChartData = {

            // labels will be the dates
            labels : ["January","February","March","April","May","June","July"],
            datasets : [
                {
                    fillColor : "rgba(220,220,220,0.5)",
                    strokeColor : "rgba(220,220,220,1)",

                    // data will be the count
                    data : [65,59,90,81,56,55,40]
                },  
            ]
        }

    var myLine = new Chart(document.getElementById("canvas").getContext("2d")).Bar(barChartData);

    </script>

<body>
    <canvas id="canvas" height="450" width="600"></canvas>
</body>

var barChartData={
//标签将显示日期
标签:[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”],
数据集:[
{
填充颜色:“rgba(220220,0.5)”,
strokeColor:“rgba(2201)”,
//数据将作为计数
数据:[65,59,90,81,56,55,40]
},  
]
}
var myLine=新图表(document.getElementById(“canvas”).getContext(“2d”)).Bar(barChartData);
JS代码将不会看到任何称为“canvas”的内容。我甚至试着把
runat=“server”
放在画布上。我可以想象这是因为它在服务器上寻找一个名为“canvas”的ID,而不是我的客户端DOM,我的假设正确吗


是否可以混合使用客户端JavaScript和服务器端JavaScript?如何让我的JavaScript查看客户端COM上的画布?

您需要将主脚本包装在
onload
类型处理程序中,这样它只会在加载/解析dom后运行。一种快速/肮脏的方法是

<script>
   function foo() {
      // your var barchartdata etc... goes here
   }
</script>

<body onload="foo();">
....
</body>
至于混合客户端/服务器端代码,这实际上是不可能的,因为它们在完全不同的环境中执行。客户端JS代码不能直接调用服务器端代码,服务器端代码也不能调用客户端代码,因为JS调用不能通过HTTP层。您可以使用ajax调用来间接调用东西,但仍然使用HTTP

$(document).ready(function() {
   /// var barchartdata stuff goes here
});