回答編集履歴
1
見直しキャンペーン中
answer
CHANGED
@@ -1,56 +1,56 @@
|
|
1
|
-
スキームハンドラーでやるのが正攻法のようです(全然わかっていませんが^^;
|
2
|
-
[Scheme Handler · cefsharp/CefSharp Wiki](https://github.com/cefsharp/CefSharp/wiki/General-Usage#scheme-handler)
|
3
|
-
|
4
|
-
* 引数なしの`new ChromiumWebBrowser()`はもう旧型式らしいので、デザイナで張り付けずコードで生成する
|
5
|
-
* `LoadHtml`での読み込みでなく`index.html`を作成する
|
6
|
-
* `index.html`では`<script src="jquery-3.3.1.min.js"></script>`のように記述する
|
7
|
-
|
8
|
-
以上で当方では想定通りに動きました(exeと同じフォルダにhtml・js)
|
9
|
-
文字列から読む方法はわかりませんでした。
|
10
|
-
|
11
|
-
```
|
12
|
-
using System.Windows.Forms;
|
13
|
-
using CefSharp;
|
14
|
-
using CefSharp.SchemeHandler;
|
15
|
-
using CefSharp.WinForms;
|
16
|
-
|
17
|
-
namespace Questions249641
|
18
|
-
{
|
19
|
-
public partial class Form1 : Form
|
20
|
-
{
|
21
|
-
private readonly ChromiumWebBrowser chromiumWebBrowser1;
|
22
|
-
|
23
|
-
public Form1()
|
24
|
-
{
|
25
|
-
InitializeComponent();
|
26
|
-
|
27
|
-
var settings = new CefSettings();
|
28
|
-
settings.RegisterScheme(new CefCustomScheme
|
29
|
-
{
|
30
|
-
SchemeName = "localfolder",
|
31
|
-
DomainName = "cefsharp",
|
32
|
-
SchemeHandlerFactory = new FolderSchemeHandlerFactory(
|
33
|
-
rootFolder: Application.StartupPath,
|
34
|
-
hostName: "cefsharp",
|
35
|
-
defaultPage: "index.html")
|
36
|
-
});
|
37
|
-
|
38
|
-
Cef.Initialize(settings);
|
39
|
-
|
40
|
-
CefSharpSettings.LegacyJavascriptBindingEnabled = true;
|
41
|
-
chromiumWebBrowser1 = new ChromiumWebBrowser("localfolder://cefsharp/");
|
42
|
-
chromiumWebBrowser1.JavascriptObjectRepository.Register("objectForScripting", new ObjectForScriptiing(), false);
|
43
|
-
|
44
|
-
Controls.Add(chromiumWebBrowser1);
|
45
|
-
chromiumWebBrowser1.Dock = DockStyle.Fill;
|
46
|
-
}
|
47
|
-
|
48
|
-
private void Form1_FormClosing(object sender, FormClosingEventArgs e) => Cef.Shutdown();
|
49
|
-
|
50
|
-
public class ObjectForScriptiing
|
51
|
-
{
|
52
|
-
public void showMessage() => MessageBox.Show("Message", "Title");
|
53
|
-
}
|
54
|
-
}
|
55
|
-
}
|
1
|
+
スキームハンドラーでやるのが正攻法のようです(全然わかっていませんが^^;
|
2
|
+
[Scheme Handler · cefsharp/CefSharp Wiki](https://github.com/cefsharp/CefSharp/wiki/General-Usage#scheme-handler)
|
3
|
+
|
4
|
+
* 引数なしの`new ChromiumWebBrowser()`はもう旧型式らしいので、デザイナで張り付けずコードで生成する
|
5
|
+
* `LoadHtml`での読み込みでなく`index.html`を作成する
|
6
|
+
* `index.html`では`<script src="jquery-3.3.1.min.js"></script>`のように記述する
|
7
|
+
|
8
|
+
以上で当方では想定通りに動きました(exeと同じフォルダにhtml・js)
|
9
|
+
文字列から読む方法はわかりませんでした。
|
10
|
+
|
11
|
+
```cs
|
12
|
+
using System.Windows.Forms;
|
13
|
+
using CefSharp;
|
14
|
+
using CefSharp.SchemeHandler;
|
15
|
+
using CefSharp.WinForms;
|
16
|
+
|
17
|
+
namespace Questions249641
|
18
|
+
{
|
19
|
+
public partial class Form1 : Form
|
20
|
+
{
|
21
|
+
private readonly ChromiumWebBrowser chromiumWebBrowser1;
|
22
|
+
|
23
|
+
public Form1()
|
24
|
+
{
|
25
|
+
InitializeComponent();
|
26
|
+
|
27
|
+
var settings = new CefSettings();
|
28
|
+
settings.RegisterScheme(new CefCustomScheme
|
29
|
+
{
|
30
|
+
SchemeName = "localfolder",
|
31
|
+
DomainName = "cefsharp",
|
32
|
+
SchemeHandlerFactory = new FolderSchemeHandlerFactory(
|
33
|
+
rootFolder: Application.StartupPath,
|
34
|
+
hostName: "cefsharp",
|
35
|
+
defaultPage: "index.html")
|
36
|
+
});
|
37
|
+
|
38
|
+
Cef.Initialize(settings);
|
39
|
+
|
40
|
+
CefSharpSettings.LegacyJavascriptBindingEnabled = true;
|
41
|
+
chromiumWebBrowser1 = new ChromiumWebBrowser("localfolder://cefsharp/");
|
42
|
+
chromiumWebBrowser1.JavascriptObjectRepository.Register("objectForScripting", new ObjectForScriptiing(), false);
|
43
|
+
|
44
|
+
Controls.Add(chromiumWebBrowser1);
|
45
|
+
chromiumWebBrowser1.Dock = DockStyle.Fill;
|
46
|
+
}
|
47
|
+
|
48
|
+
private void Form1_FormClosing(object sender, FormClosingEventArgs e) => Cef.Shutdown();
|
49
|
+
|
50
|
+
public class ObjectForScriptiing
|
51
|
+
{
|
52
|
+
public void showMessage() => MessageBox.Show("Message", "Title");
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
56
|
```
|