【问题标题】:Placing a javascript code into a perl script将 javascript 代码放入 perl 脚本
【发布时间】:2020-10-13 14:24:13
【问题描述】:

我正在尝试将一些 JavaScript 放入 Perl 脚本(扩展名 .pl)。 JavaScript 用于交互式社交媒体按钮,但它们不会出现在页面上。这是我放在 Perl 脚本中的代码:

<div class="sb-Container"></div>
<script
    src="https://code.jquery.com/jquery-3.3.1.min.js"
    integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
    crossorigin="anonymous">
</script>

<script src="..js/shareButtons.min.js"></script>

<script>
    $(function () {
        $(document).shareButtons({

            // Main Settings
            url: 'URL', // URL to share
            buttonSize: '50px', // Size of the share buttons. Min: 25px
            buttonsAlign: 'horizontal', // Buttons layout: horizontal, vertical
            spaceBetweenButtons: '3px', // Space between the buttons
            radius: '5px', // Buttons corner radius

            // Icons Settings
            iconSize: '20px', // Size of the social networks icons. Min: 15px
            iconColor: '#fff', // Color of the social networks icons
            iconColorOnHover: '#222', // Color of the social networks icons on hover

            // Facebook Button Settings
            showFacebookBtn: 'show',  // Display button: show, hide
            facebookBgr: '#4a6ea9', // Button background color
            facebookBgrOnHover: '#385a97', // Button background color on hover

            // Twitter Button Settings
            showTwitterBtn: 'show', // Display button: show, hide
            tweetMessage: 'Your message goes here', // Default tweet message (URL is added to the message automatically)
            twitterBgr: '#2aaae0', // Button background color
            twitterBgrOnHover: '#197bbd', // Button background color on hover 

            // Pinterest Button Settings
            showPinterestBtn: 'show', // Display button: show, hide
            pinterestBgr: '#e30b2c', // Button background color
            pinterestBgrOnHover: '#d3132a', // Button background color on hover

            // LinkedIn Button Settings
            showLinkedinBtn: 'show', // Display button: show, hide
            linkedinBgr: '#007bb6', // Button background color
            linkedinBgrOnHover: '#0e67b0', // Button background color on hover

            // VKontakte Button Settings
            showVkBtn: 'hide', // Display button: show, hide
            vkBgr: '#5b88bd', // Button background color
            vkBgrOnHover: '#688fb2', // Button background color on hover

            // WhatsApp Button Settings (this button works on mobile devices only)
            showWaBtn: 'show', // Display button: show, hide
            waBgr: '#37d350', // Button background color
            waBgrOnHover: '#25e47a', // Button background color on hover

            // Viber Button Settings (this button works on mobile devices only)
            showViberBtn: 'show', // Display button: show, hide
            viberBgr: '#665eaa', // Button background color
            viberBgrOnHover: '#675fa7', // Button background color on hover

            // Email Button Settings
            showEmailBtn: 'show', // Display button: show, hide
            emailBgr: '#888888', // Button background color
            emailBgrOnHover: '#7a7a7a', // Button background color on hover

            // Print Button Settings
            showPrintBtn: 'show', // Display button: show, hide
            printBgr: '#888888', // Button background color
            printBgrOnHover: '#7a7a7a', // Button background color on hover
        })
    });
</script>

HTML 显示:

1009 1009function () {
1009 1009document).shareButtons({

代替:

$(function () {
    $(document).shareButtons({

我应该在特殊字符中添加任何内容吗?

感谢您的帮助

【问题讨论】:

    标签: javascript perl cgi


    【解决方案1】:

    假设您将代码添加到一些“here-Doc”中

    print <<EOT;
    <div class="sb-Container"></div>
                                <script
                                src="https://code.jquery.com/jquery-3.3.1.min.js"
                                integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
                                crossorigin="anonymous"></script>
                            
    ...
    EOT
    

    您必须将初始的&lt;&lt;EOT; 更改为&lt;&lt;'EOT';,表示您不希望特殊元素(变量等)被转义。

    请注意,尽管\\\' 将打印为\',因此您可能必须“修复”它。

    【讨论】:

    • 感谢您的回复。我在 perl 文档中搜索“
    • 在您添加的代码之前查找第一个“perl”语句。很难猜出它是什么,
    • 如果例如有一个$html = qq( ..,您不能轻易将其更改为等效于$html = q( ..,因为您需要编辑代码以转义)
    • 添加代码前的第一个perl语句是'my $content = qq{',下一行是HTML。我的 $content = qq{ 在一行。下一行是
      。我不明白你的最后评论。
    • my $content = qq{ 将获取所有内容直到结束 },如果这是下面的多行。 JS 代码的右花括号将是语法错误。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签