javascript
  • drupal
  • widget
  • 2011-07-24 64 views 2 likes 
    2

    我有一個JavaScript小部件,可以在一個普通的老HTML頁面上插入這樣的:插入Drupal站點的一個頁面上的JavaScript控件

    <html> 
        <head> 
         <script type='text/javascript' src="http://example.com/widget.js"></script> 
        </head> 
        <body> 
         <script type='text/javascript'> 
          //<![CDATA[    
          try{ widget_constructor('key',500,400); } 
          catch(e){ alert(e.message); } 
          //]]> 
         </script> 
        </body> 
    </html> 
    

    我想插入這個JavaScript的一個頁面上一個Drupal 6站點(不是每個頁面)。

    這是我迄今試圖讓腳本標籤在HEAD:

    • 我設置的全功能HTML輸入格式允許PHP。
    • 對於Drupal的頁面,我輸入格式設置爲Full HTML

    我加入這個到我的Drupal頁面的主體的頂部:

    <?php 
        drupal_set_html_head('<script type="text/javascript" src="http://example.com/widget.js"> </script>'); 
    ?> 
    

    但是Drupal沒有解析PHP,而不是在頁面的頂部打印此:

    <?php drupal_set_html_head(''); ?> 
    

    任何建議,我怎麼能做到這一點?

    回答

    0

    編寫全力以赴之後,我想通了這個問題...

    完整的HTML輸入格式有HTML校正過濾器默認打開的,而過濾器似乎已經造成與問題PHP代碼。重新排序篩選器以使PHP評估程序首先解決問題。

    2

    我對Drupal不太熟悉,所以這個答案只是繞過你的小部件而不是實際回答問題,爲什麼PHP塊沒有被解析爲PHP。

    您不需要撥打<head>中的<script>標記。您可以將該行正好放在調用小部件構造函數的<script>標記的上方。

    <html> 
        <head> 
    
        </head> 
        <body> 
         <script type='text/javascript' src="http://example.com/widget.js"></script> 
         <script type='text/javascript'> 
          //<![CDATA[    
          try{ widget_constructor('key',500,400); } 
          catch(e){ alert(e.message); } 
          //]]> 
         </script> 
        </body> 
    </html> 
    
    +0

    感謝: http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_add_js/6

    這裏有一些還讀上如何使用它爲小費。 –

    3

    @傑夫:你不應該真的重新考慮這一點。使用PHP過濾器通常是一個壞主意,因爲它可能會打開安全漏洞。 (如果有人可以訪問您的用戶帳戶,或者您的設置中存在配置錯誤,這是直接損害整個服務器的途徑)

    我寧願建議通過您的主題的template.php添加js。另外要使用正確的方法是選擇內嵌drupal_add_js:

    http://drupal.org/node/304178#comment-1000798 http://drupal.org/node/482542

    相關問題