teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

見直しキャンペーン中

2023/07/21 09:10

投稿

TN8001
TN8001

スコア10108

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
- ```C#
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
  ```