2017-08-14 100 views
1

我需要在我的functions.php文件中触发一个钩子后运行脚本。即时通讯使用WordPress的mailchimp插件,我需要做一些文字插入和display = "none"等,在html:在functions.php中执行document.ready

add_action('mc4wp_form_success', function() { 
    // do something 
    echo '<script type="text/javascript">', 
     'console.log("starting....");', // this works 
    'document.getElementById("mailchimp-is-subscribed").style.display = "none";', 
     'document.getElementById("mailchimp-success-form").style.display = "block";', 
     'console.log("end");', 
    '</script>'; 
}); 

我得到的错误是stylenull。我假定文件没有准备好? $不起作用。 我做错了吗?我需要在调用该钩子后运行该代码。将代码放在.js文件中效果很好。由于

+0

事实上,你这样做是不对的。你不能像这样混淆PHP和JavaScript。 –

+0

@NiettheDarkAbsol是的,我认为是的。什么是正确的方法呢? – Sylar

回答

0

您可以在DOMContentLoaded事件添加代码为:

document.addEventListener('DOMContentLoaded', function() { ..your_code... }, false);

检查这个答案:pure JavaScript equivalent to jQuery's $.ready() how to call a function when the page/dom is ready for it

+0

对不起,但看起来像jquery的一半,我不能在那里使用jQuery。 – Sylar

+0

对不起,你是对的!我已经改变了答案。 – Fredster

+1

SWEET!很好用,但采用这种格式'document.getElementById(“mailchimp-is-subscribed”)。style.display =“none”;'谢谢! – Sylar

相关问题