ue中使用window.open打开新窗口为什么会刷新父窗口
时间: 2023-11-28 22:22:27 浏览: 80
在 UE 中使用 `window.open` 打开新窗口,如果新窗口的 URL 和父窗口的域名不一致,那么在某些浏览器中会将父窗口刷新,这是由于浏览器的安全策略所致。具体来说,这是为了防止恶意网站在用户不知情的情况下,通过新开窗口来进行一些攻击行为,比如弹窗广告、钓鱼欺诈等等。
如果你想避免父窗口被刷新,可以尝试在打开新窗口时添加 `rel="noopener"` 属性,或者在新窗口中添加以下 JavaScript 代码:
```javascript
if (window.opener) {
window.opener.location.reload(false);
}
```
这样可以阻止新窗口访问父窗口的对象,从而避免父窗口被刷新。
相关问题
ue5编辑器打开新窗口
在UE5编辑器中,可以通过多种方法打开新窗口。
首先,可以使用快捷键来打开新窗口。例如,按下"Ctrl + W"组合键可以打开当前场景的预览窗口。此窗口将显示一个实时预览场景的窗口,可以在其中查看和调整场景中的对象和效果。
其次,可以通过菜单选项打开新窗口。在UE5编辑器的顶部菜单栏中有多个选项可供选择。例如,选择"窗口"选项,然后在下拉菜单中选择不同的窗口类型,如"内容浏览器"、"场景(outliner)"、"蓝图编辑器"等,即可打开相应的新窗口。
另外,还可以通过窗口的标签页来打开新的窗口。在编辑器的右上角有一个标签栏,显示当前已打开的窗口的标签页。可以通过单击某个标签页旁边的"+"图标来打开新的窗口。在弹出的菜单中,可以选择不同的窗口类型,然后在编辑器中会打开一个新的窗口。
最后,还可以通过搜索功能来打开新窗口。在编辑器的顶部菜单栏右侧有一个搜索框。在搜索框中输入想要打开的窗口名称,编辑器会自动显示匹配项。可以从搜索结果中选择所需的窗口,并在编辑器中打开。
总而言之,UE5编辑器提供了多种方法来打开新的窗口,以满足开发者的需求。无论是使用快捷键、菜单选项、标签页还是搜索功能,都可以方便地打开和管理多个窗口,从而提高工作效率。
ue5 slate 独立窗口插件如何定义一个中文按钮 为什么会乱码?
要定义一个中文按钮,可以按照以下步骤进行:
1. 在 Slate 中定义一个按钮控件:
```cpp
SNew(SButton)
.Text(FText::FromString(TEXT("中文按钮")))
```
2. 为按钮控件设置字体:
```cpp
SNew(SButton)
.Text(FText::FromString(TEXT("中文按钮")))
.TextStyle(FEditorStyle::Get(), TEXT("FontAwesome.12"))
```
其中,`.TextStyle` 函数可以设置字体和大小。在这个例子中,使用的是编辑器样式中的 FontAwesome 字体,大小为 12。
3. 在插件的资源文件夹中添加字体文件,例如添加一个名为 `myfont.ttf` 的字体文件。
4. 在插件的 Build.cs 文件中添加字体资源:
```cpp
PrivateDependencyModuleNames.AddRange(new string[] { "SlateCore" });
PrivateIncludePaths.Add("Path/To/Fonts");
PrivateFontPaths.Add("Path/To/Fonts");
PrivateFonts.Add(new FontFaceData("MyFont", "myfont.ttf"));
```
其中,`PrivateIncludePaths` 和 `PrivateFontPaths` 分别指向字体文件夹的路径。`PrivateFonts` 则是一个数组,包含了所有要添加的字体资源。
5. 在按钮控件中使用自定义字体:
```cpp
SNew(SButton)
.Text(FText::FromString(TEXT("中文按钮")))
.TextStyle(FCoreStyle::Get(), TEXT("MyFont.12"))
```
这里使用的是自定义字体 MyFont,大小为 12。
如果按钮控件中出现了乱码,可能是因为字体资源没有正确加载或者字体文件本身存在问题。可以尝试重新编译插件或者更换字体文件来解决问题。
阅读全文