カスタム データ属性を持つ関数を渡すことは可能ですか?
これは動作しません:
<div data-myattr="hello();">
</div>
function hello(){
console.log('hello');
}
属性を取得すると、値が「hello();」の文字列になります。関数の代わりに。これを解決する方法は?
カスタム データ属性を持つ関数を渡すことは可能ですか?
これは動作しません:
<div data-myattr="hello();">
</div>
function hello(){
console.log('hello');
}
属性を取得すると、値が「hello();」の文字列になります。関数の代わりに。これを解決する方法は?
次のように実行できます。
<div data-myattr="hello"></div>
function hello(){
console.log('hello');
}
function executeFunctionFromData(){
var d = 'hello' // Save `data-myattr` to d; (Obviously, this is just a hardcoded value as an example)
window[d](); // Execute the function.
}
これが機能するのは、関数hello
がグローバル スコープで定義されているためです。つまり、window
オブジェクトのプロパティです。
eval を使用:
eval("alert('hello');");
こんにちはを表示します。