Выполнить JS код в C#

80
12 ноября 2021, 13:10

Подскажите, пожалуйста, следующий момент... Необходимо, чтобы следующий небольшой скриптик выполнялся на любом компьютере. Проблема в том, что если использовать explorer, то в нём необходимо специально включать поддержку выполнения JS кода, а делать это никто не будет. Как мне это сделать? Писать ли отдельный небольшой браузер или что-то ещё выдумывать? Или есть вариант, чтобы включить поддержку JS скриптов в эксплорере без вмешательства пользователя? Код обязательно должен быть размещён на сайте, или можно сделать выполнение без него? Как вариант, я рассматриваю размещение на компьютере JS скипта и выполнение его напрямую, но нет понимания, получится ли... В общем, помогите, пожааалуйста<3 По поводу языков - пишу на С# основную программу.

<script src="https://*получаем библиотеку из интернета*"></script>
<script>
    Код
</script>
Answer 1

В Nuget для этого специально лежит привязка Chromium Embedded Engine для C#

MainWindow.xaml

<Window x:Class="ExecutingJavaScript.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ExecutingJavaScript"
        xmlns:cefsharpwpf="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
        mc:Ignorable="d"
        Title="Executing JavaScript" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="5*"></RowDefinition>
            <RowDefinition Height="1*"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="8*"></ColumnDefinition>
            <ColumnDefinition Width="2*"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <!--The browser component, which loads the github.com website by default-->
        <cefsharpwpf:ChromiumWebBrowser Name="Browser" Address="github.com" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"></cefsharpwpf:ChromiumWebBrowser>
        <!--The textbox for typing the JavaScript which should be executed in the currenly loaded web page-->
        <TextBox Name="ScriptTextBox" Grid.Row="1" Grid.Column="0"></TextBox>
        <!--The button which starts the JavaScript evaluation-->
        <Button Name="ExecuteJavaScriptBtn" Grid.Row="1" Grid.Column="1" Click="ExecuteJavaScriptBtn_Click">Execute</Button>
    </Grid>
</Window>

MainWindow.xaml.cs

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
    private async void ExecuteJavaScriptBtn_Click(object sender, RoutedEventArgs e)
    {
        //Check if the browser can execute JavaScript and the ScriptTextBox is filled
        if (Browser.CanExecuteJavascriptInMainFrame && !string.IsNullOrWhiteSpace(ScriptTextBox.Text))
        {
            //Evaluate javascript and remember the evaluation result
            JavascriptResponse response = await Browser.EvaluateScriptAsync(ScriptTextBox.Text);
            if (response.Result != null)
            {
                //Display the evaluation result if it is not empty
                MessageBox.Show(response.Result.ToString(), "JavaScript Result");
            }
        }
    }
    ...
}

READ ALSO
Добавить поддержку .fb2 в wordpress

Добавить поддержку .fb2 в wordpress

Собственно говоря как добавить поддержку форматаfb2 я пробовал добавить вот такой код в functions

104
Как отправить форму отзывов на почту?

Как отправить форму отзывов на почту?

Как отправить форму отзывов на почту + ошибку "Неверно введен e-mail!"?

187
Ошибка с mysqli_query()

Ошибка с mysqli_query()

Цель выслать данные в БД Код :

263