2016-08-12 88 views
0

我在Firefox中將iMacros與JavaScript結合使用。所需的腳本存儲在我的硬盤上。我正在使用的腳本沒有嵌入到網站中。我熟悉如何在HTML上下文中使用多個JavaScript文件的過程,但由於在這種情況下我沒有這種上下文,有什麼方法可以繼續嗎?如何在沒有HTML的情況下從JavaScript中的外部.js文件調用JavaScript函數?

例子: script1.js

function Message(message) { 
    alert(message); 
} 

script2.js

//Some reference to the file script1.js 
var message = "Hello"; 
Message(message); 

在這種情況下,我想運行script2.js並有警報彈出。

我感謝您的幫助。

+0

當你說:沒有HTML,你是什麼意思?在什麼環境下你會運行這個代碼? – dpdragnev

+0

我猜這是iMacros專家@dpdragnev的問題,而不是JavaScript專家。 –

+0

@dpdragnev我的意思是我沒有建立一個網站,我有一個HTML部分和一個JavaScript部分,因此,我不能從HTML代碼中調用像'這樣的js文件。我只需要JavaScript即可使用。我通過iMacros瀏覽器擴展啓動代碼(如果有幫助的話)。 – Christian

回答

0

我習慣運用這樣的事情:

// Some reference to the file script1.js 
var extScript = imns.FIO.openNode("D:\\Temp\\script1.js"); 
extScript = imns.FIO.readTextFile(extScript); 
eval.apply(window, [extScript]); 

var message = "Hello"; 
Message(message); 
+0

這工作,並幫助我出了巨大的。謝謝! – Christian

+0

我注意到一些奇怪的東西。如果所有函數都位於一個'* .js'文件中,並且我在iMacros中運行它,那就很好。但是,如果我將這些功能外包給外部文件並按照您的建議引用它,則某些(外包)功能無法正常工作,這意味着如果做出決定它們會有所不同。 IF THEN的決定主要涉及'window.document。*'中的DOM元素,比如'if'元素在那裏'然後'這樣做。你有什麼想法導致這種情況,甚至可能如何避免它? – Christian

+0

嘗試直接將這些函數中的窗口對象作爲參數之一傳遞。 – Shugar

相關問題