フォーム API の「#markup」に問題があります。
Drupal 7 では、次のような「#markup」フォーム要素を使用できます。
<?php
$form['test'] = array(
'#type' => 'markup',
'#markup' => '<div><script src="http://localhost/drupal7/sites/all/libraries/test.js"></script></div>',
);
?>
//Here is my custom test.js
(function($) {
Drupal.behaviors.test = {
attach: function(context, settings) {
console.log('testttt');
document.write('*Hello, there!*');
}
};
})(jQuery);
上記のコードは、フォームがレンダリングされるときに「 Hello, there! 」と出力します。
Drupal 8 では以下のコードを使用していますが、何も出力しません。
<?php
$form['test'] = array(
'#markup' => '<div><script src="http://localhost/project8/sites/all/libraries/test.js"></script></div>',
);
?>
では、Drupal 7 ですでに動作している Drupal 8 でこの機能を実装するにはどうすればよいでしょうか。スクリプト タグの下には、ローカル スクリプトまたは外部スクリプトを指定できます。助けてください...
ありがとう