【问题标题】:"for" statement in JavaScript, JSFJavaScript、JSF 中的“for”语句
【发布时间】:2014-02-05 07:41:10
【问题描述】:

我正在使用 JSF 2.1,PrimeFaces 3.3.1。 试图将 Yandex 地图放在我的页面上,以在地图上显示事件。 所以,我的 xhtml:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
  ...
  xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
</h:head>
<h:body>
    <ui:composition template="./Template.xhtml">
        <ui:define name="content">
            <script src="//api-maps.yandex.ru/2.0/?load=package.full;lang=ru-RU" type="text/javascript"></script>
            <script src="/js/yMapsEditableCircle.js" type="text/javascript"></script>-->
                <script type="text/javascript">
                        var myMapRes;
                        ymaps.ready(init);
                        function init() {
                            myMapRes = new ymaps.Map('resultMap', {
                                center:["#{calculatorGeo.cgm.selectedCity.latitude}", "#{calculatorGeo.cgm.selectedCity.longitude}"],
                                zoom:12
                            });
                            //taking coordinates from bean to js
                            var coords = ['#{calculatorGeo.cgm.coords}'];
                            //#{calculatorGeo.cgm.coords} - String variable containing smth like this: [54.9888,56.3434],[54.458,56.3456],...,[58.23458,55.2345]
                            var myCollection = [];
                            for (var i = 0; i<coords.length; i++) {
                                myCollection.push(new ymaps.Placemark(coords[i]));
                            }
                            var clusterer = new ymaps.Clusterer({preset: 'twirl#redClusterIcons',
                                gridSize: 100,
                                synchAdd: false,
                                minClusterSize: 2});
                            clusterer.add(myCollection);
                            myMapRes.geoObjects.add(clusterer);
                        }
                    </script>
                    <div id="resultMap" style="width:800px; height:600px; border: 1px solid"></div>
        </ui:define>
    </ui:composition>
</h:body>

javascript 中的 for 语句出错,我做错了什么?

错误文本:致命错误:元素类型“coords.length”必须后跟属性规范“>”或“/>”。

试过把js放到tag上,也没用。

【问题讨论】:

  • 你没有使用 DOCTYPE 吗?
  • ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • 首先,尝试将脚本包装在&lt;h:outputScript&gt;(而不是普通的&lt;script&gt;)中。如果这没有帮助,请记住您正在编写 XHTML,其中&amp;lt; 始终被解释为标记开始。将其编码为&amp;lt;,看看是否有帮助。
  • 哦,请把 JS 代码放在 JS 文件中,而不是放在 XML 文件中。 XML 文件用于 XML 代码,而不是 JS 代码。
  • - 同样的错误.. < - netbeans 说有错误,但在浏览器中可以正常工作。

标签: javascript jsf primefaces xhtml


【解决方案1】:

在编写 XHTML 时,您应该将 script 标记内的所有内容定义为 CDATA

<script type="text/javascript">
//<![CDATA[
    // Your JS-Code
//]]>
<script>

错误是因为for 循环头部的&lt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    相关资源
    最近更新 更多