2013-06-17 6 views
0

Я использую XSLT для создания функции javascript с использованием данных XML от члена. Я хотел бы иметь возможность выполнить эту функцию из элемента <script> в шаблоне, если это возможно.Выполнение функции javascript из скрытого поля

Как создается Javascript функции:

<XSL:variable name="ScriptToAdd"> 
<script type="text/javascript" language="Javascript"> 
    <XSL:text>displayBigSuppPub('</XSL:text> 
    <XSL:value-of select="$suppPubPath" /> 
    <XSL:text>', '</XSL:text> 
    <XSL:value-of select="$member/multiplePubs/multiplePub/@name" /> 
    <XSL:text>');</XSL:text> 
</script> 
</XSL:variable> 

<input type="hidden" id="scriptToAdd" value="{$ScriptToAdd}" /> 

Когда я проверяю в исходном коде, я могу видеть, что яваскрипт функция в значении скрытого поля.

У меня есть элемент <script> в моем шаблоне, который используется для изменения между вкладками профиля, и я хотел бы выполнить функцию в скрытом поле, когда выбрана вкладка «Публичность».

if(sTab == "publicites") { 
    scriptAdded = document.getElementById('scriptToAdd').value; 
    alert(scriptAdded); 
} 

Это работает, когда я меняю на вкладку Pubs, но я не знаю, как и если я могу выполнить этот код вместо того, чтобы использовать предупреждение (уведомление используется только в качестве теста).

Javascript функция Я хочу, чтобы выполнить:

displayBigSuppPub('getImage.php?path=resources/images/members/21214/Tulips.jpg&canvasWidth=640', 'Tulips.jpg'); 

Эта функция корректно работает при использовании с событием OnClick на рекламных этого пользователя.

ответ

1

eval() должен делать (но это не очень хорошее решение) Try:

if(sTab == "publicites") { 
    scriptAdded = document.getElementById('scriptToAdd').value; 
    eval(scriptAdded); 
} 

Это не имеет ничего общего с XLST, но каким-либо образом.

Если вы делаете это таким образом, есть не нужно для:

<script type="text/javascript" language="Javascript"> 
+0

работает отлично. Не могли бы вы объяснить, почему это не хорошее решение? Я хотел бы знать для целей знания. – oliboon