سؤال

أنا الحفاظ على تطبيق Cocon 2.1 وواجه مشكلة خطيرة مع معايير الطلب.

النظر بعد عنوان URL:

http://myapp.com/somePage.html?param1=<expected_integer_value>&param2=<expected_integer_value>

يتم تمرير كل من param1 و param2 مباشرة إلى محول كمعلمات (<map:parameter />) ثم تستخدم مباشرة في رمز JavaScript باستخدام قالب قيمة السمة:

`<select ... onchange="someFunction(this, '{$param1}','{$param2}');" >`

المشكلة هي أنه من الممكن ضخ بعض رمز JavaScript في المعلمات ولا يتم هربها بشكل افتراضي (ومع ذلك، فإن جميع المقالات حول Cocoon و XSLT تقول أن الإخراج يكون هرب بشكل افتراضي).

ربما شخص أكثر خبرة مع cocoon و xsl قد يعرف شيئا عن هذه المشكلة؟ كيف يمكنني الهروب من الإخراج في شرنقة؟ سوف أقدر أي مساعدة وإرشادات.

شكرا مقدما

سيمون

هل كانت مفيدة؟

المحلول

تمكنت من العثور على حل لهذه المشكلة. في ملف Sitemap، يجب أن يتم الضغط على كل معلمة يجب تمريرها مباشرة من URL إلى ملف XSLT باستخدام باستخدام url-encode وظيفة. مثال

<map:parameter name="param1" value="{url-encode:{request-param:theNameOfTheParam}}" />'

تحيات سايمون

نصائح أخرى

منذ Cocoon Decodes Prams أقترح عليك أن تقوم بترجمة بسيطة لتجنب المشكلة مع المعلمة غير المتفجرة:

<select ... onchange="someFunction(this, '{translate($param1,"'", "")}','{translate($param1,"'", "")}');" >

يرى http://www.zvon.org/xxl/xsltreferenferen/output/function_translate.html.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top