我正在使用eval()
從字符串運行腳本。下面是代碼:如何從eval()獲取console.log輸出?
eval('console.log("hello")');
我會從控制檯輸出得到hello
。我想知道是否可以將hello
保存到當前上下文中的變量中。所以我正在尋找這樣的事情:
const output = eval('console.log("hello")');
//我希望控制檯輸出從eval()
函數返回。
但我得到一個undefined
響應。有沒有辦法讓我這樣做?
我正在使用eval()
從字符串運行腳本。下面是代碼:如何從eval()獲取console.log輸出?
eval('console.log("hello")');
我會從控制檯輸出得到hello
。我想知道是否可以將hello
保存到當前上下文中的變量中。所以我正在尋找這樣的事情:
const output = eval('console.log("hello")');
//我希望控制檯輸出從eval()
函數返回。
但我得到一個undefined
響應。有沒有辦法讓我這樣做?
這是不可能的,因爲console.log()
只返回undefined,但是你可以使一個函數返回一些東西。
例子:
console.oldLog = console.log;
console.log = function(value)
{
console.oldLog(value);
return value;
};
const output = eval('console.log("hello")');
希望這會有所幫助。
這是進入一個危險的領域,與預定義的東西搞亂。 – TricksfortheWeb
雖然很好的答案。 :) – TricksfortheWeb
可能重複[截取調用console.log在Chrome中](https://stackoverflow.com/questions/9216441/intercept-calls-to-console-log-in-chrome) – qxg
好控制檯不會返回任何東西那麼爲什麼你會期望它返回一些東西呢? – epascarello