在Chrome中设置/伪造/模拟窗口。外部?

时间:2018-04-16 04:43:43

标签: javascript google-chrome mocking google-chrome-devtools

我正在创建一个使用window.external的网站(稍后将在WPF WebBrowser控件中运行)。

但是,尽管我尝试过,所有window.external方法都是未定义的:

window.external = {
    SetDragText: function() {},
    ShowFileDialog: function() { 
        onFileOpenCompleted(JSON.stringify(["D:\Temp\test.pdf"])) 
    },
    OpenPdfViewer: function() {},
};

有没有办法在Chrome调试/开发工具中覆盖window.external

1 个答案:

答案 0 :(得分:0)

这应该有效,你需要输入没有括号的函数来获取定义,否则你调用它,因为你不返回任何内容而返回undefined



window.external = {
    SetDragText: function() {},
    ShowFileDialog: function() { 
        onFileOpenCompleted(JSON.stringify(["D:\Temp\test.pdf"])) 
    },
    OpenPdfViewer: function() {},
};
$("#result").text("Actual function definition: " + String(window.external.SetDragText));
$("#result2").text(String("Function call result: " + window.external.SetDragText()));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span id="result"></span>
</br>
<span id="result2"></span>
&#13;
&#13;
&#13;