【问题标题】:javascript canvas tag and stroketext methodjavascript canvas标签和stroketext方法
【发布时间】:2015-01-30 00:05:06
【问题描述】:

描边文本方法不起作用。问题出在下面一行:

cns.strokeText(<?php echo posST($StreamVal[0][0]); ?>,x,y);  

当我在该数组元素([0][0] 的元素)中使用数值时,不会出现任何问题,并且代码可以正常工作。但是当我使用字符串值时,该值不显示。

<?php
$StreamVal=array(
array("Stream1",80),
array("Stream2",10),
array("Stream3",10),
array("Stream4",10)
);
function posST($Stream)
{
    return $Stream;
}
?>
<script>
var c = document.getElementById("Canvas");
var cns = c.getContext("2d");
var x=50*Math.cos((<?php echo posST($StreamVal[0][1]); ?>*Math.PI)/50)+100;
var y=50*Math.sin((<?php echo posST($StreamVal[0][1]); ?>*Math.PI)/50)+75;
cns.font = "30px Arial";
**cns.strokeText(<?php echo posST($StreamVal[0][0]); ?>,x,y);**  
</script>

我该如何解决这个问题?

【问题讨论】:

  • 您将字符串回显到 js 中,周围没有引号。 ...xt('&lt;?php echo posST($StreamVal[0][0]); ?&gt;',x... 如果您查看页面的源代码,它看起来像:...xt(some text here,x,y); 它会认为您引用的是某个变量,而不是字符串。
  • @JonathanKuhn 是正确的,您需要用引号将您的声明括起来。但是你不应该一开始就混用 PHP 和 JavaScript。作为一种好的做法,请始终尝试通过 Ajax 使用 JSON 来避免这种情况。

标签: javascript php html canvas


【解决方案1】:

尝试使用javascriptparseInt函数

parseInt(<?php echo posST($StreamVal[0][1]); ?>)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2011-06-28
    相关资源
    最近更新 更多