Javascript函数将Javascript代码转换为String

时间:2015-07-15 12:45:19

标签: javascript electron

将长javascript code转换为string的任何简单函数?

Electron - WebContents.executeJavaScript(code)code参数需要是一个字符串。我想将一个简单的javascript函数传递给Browser-Window加载的所有网页。

这条小线有效:

WebContents.executeJavaScript("console.log('FOO');");

但是一旦代码变长,它就会变得更加困难。

这是我要插入的一个特定代码块。

        var ta_arr = document.getElementsByTagName("textarea");
        for(var i=0;i<ta_arr.length;i++){
            var ta = ta_arr[i];
            if(ta.hasAttribute("placeholder")){
                ta.setAttribute("data-placeholder",ta.placeholder);
                ta.addEventListener('keyup',function(e){
                    if(ta.value.length > 0){
                        ta.removeAttribute("placeholder");
                    }else{
                        ta.placeholder=ta.getAttribute("data-placeholder");
                    }
                },false);
            }
        }

当用户在其上键入时,Browser-Window的textarea占位符不会消失。因此,我不想将上面的代码放到我的应用源文件中,而是使用WebContents.executeJavaScript,因为它是Electron特定的问题。

1 个答案:

答案 0 :(得分:0)

给它一个旋转

<script id="myScript">
  var ta_arr = document.getElementsByTagName("textarea");
    for(var i=0;i<ta_arr.length;i++){
        var ta = ta_arr[i];
        if(ta.hasAttribute("placeholder")){
            ta.setAttribute("data-placeholder",ta.placeholder);
            ta.addEventListener('keyup',function(e){
                if(ta.value.length > 0){
                    ta.removeAttribute("placeholder");
                }else{
                    ta.placeholder=ta.getAttribute("data-placeholder");
                }
            },false);
        }
    }
</script>

<script>
    var s = document.getElementById('myScript');
    var text = s.textContent;
    console.log(text);
</script>