从Greasemonkey4IE运行多个脚本时出现问题

时间:2011-06-03 08:49:18

标签: javascript internet-explorer greasemonkey

//================MyJs.js=========================
var objGreeting = {
   Greetings : function() {
   toolbardiv = document.createElement('toolbardiv'); // create div tag dynamically
   toolbardiv.setAttribute('id',"toolbar"); // give id to it
   toolbardiv.className="top"; // set the style classname

  //set the inner styling of the div tag
   toolbardiv.style.position="absolute";

   //set the html content inside the div tag
   toolbardiv.innerHTML="<input id='Greeting-Button' type='button' value='Login'           onClick='objHello.SayHello()'/>"
   }
},

var objHello = {

   SayHello: function() {
   alert("Hello World");
   }
};

现在这一切都在一个JS文件中,并且工作正常。

现在我想将上面的两个类分成两个不同的js文件。 但在这样做之后,我无法调用SayHello方法。

我正在使用“GreaseMonkey for IE”和IE8来运行此脚本。

1 个答案:

答案 0 :(得分:1)

要让您的脚本动态插入JS,您可以使用以下内容:

function addJS_Node (text, s_URL)
{
    var scriptNode                      = document.createElement ('script');
    scriptNode.type                     = "text/javascript";

    if (text)  scriptNode.textContent   = text;
    if (s_URL) scriptNode.src           = s_URL;

    document.head.appendChild (scriptNode);
}

addJS_Node (null, 'YourPath/YourJS_File.js');

请注意,我不使用IE,因此代码在该平台上未经测试但应该可以使用。

根据网页的不同,document.body.appendChild可能会更好。